C++共享内存传输数据有关问题求大神指教

C++共享内存传输数据问题求大神指教
愚生在利用C++共享内存传数据的时候遇到这样的问题~部分代码如下

#define MAP_PREFIX          L"Local\\"
#define MAP_NAME            L"CallBackMap"
#define FULL_MAP_NAME       MAP_PREFIX MAP_NAME

#define MAP_SIZE            65536

#define VIEW_OFFSET         0

#define VIEW_SIZE           0 
void CALLBACK DecCBFun(long nPort, char * pBuf, long nSize, HK::FRAME_INFO * pFrameInfo, long nReserved1, long nReserved2)
{
  printf("call g_DecCBFun suceess.\n");  
  printf("nPort=%d,nSize=%d,pFrameInfo.nWidth=%ld,pFrameInfo.nHeight=%ld,pFrameInfo.nStamp=%ld,pFrameInfo.nType=%ld,pFrameInfo.nFrameRate=%ld.\n",   
  nPort,nSize,pFrameInfo->nWidth,pFrameInfo->nHeight,  
  pFrameInfo->nStamp,pFrameInfo->nType,pFrameInfo->nFrameRate);  

    HANDLE hMapFile = NULL;
    PVOID pView = NULL;
    hMapFile = CreateFileMappingW(
        INVALID_HANDLE_VALUE,   
        NULL,                  
        PAGE_READWRITE,         
        0,                      
        MAP_SIZE,               
        FULL_MAP_NAME           
        );
    if (hMapFile == NULL) 
    {
        AfxMessageBox(_T("CreateFileMapping failed \n", ));
        goto Cleanup;
    }
    AfxMessageBox(_T("The file mapping is created\n"));

    pView = MapViewOfFile(
        hMapFile,              
        FILE_MAP_ALL_ACCESS,    
        0,                      
        VIEW_OFFSET,           
        VIEW_SIZE             

        );
    if (pView == NULL)
    { 
        AfxMessageBox(_T("MapViewOfFile failed\n")); 
        goto Cleanup;
    }
    AfxMessageBox(_T("The file view is mapped\n"));
    char* pszMessage = pBuf;

    memcpy_s(pView, VIEW_SIZE, pszMessage,nSize);   
    AfxMessageBox(_T("This pBuf is written to the view\n"));

 SYSTEMTIME s_t; 
 STARTUPINFOA s_i;  
 PROCESS_INFORMATION p_i;
 ZeroMemory(&s_i,sizeof(s_i)); 
 s_i.cb = sizeof(s_i);    
 ZeroMemory(&p_i,sizeof(p_i));  

 if(!CreateProcessA(NULL,"D:\\MyBackup\\我的文档\\Visual Studio 2010\\Projects\\SHOW\\Debug\\SHOW.exe",
 NULL,NULL,FALSE,NULL,NULL,NULL,&s_i,&p_i)){  
 AfxMessageBox(_T(" Err")); 
   
  }
  DWORD pid;
  pid=p_i.dwProcessId;

我想把pBuf的数据(视频实时回调数据)写进共享内存,然后子进程读取pBuf的数据,利用pBuf的数据进行分析~
父进程运行时报这样的错
debug assertion failed! 
Expression:sizeInBytes >=count

File:f\dd\vctools\crt_bld\self_x86\crt\src\memcpy_s.c
Line:62
~
请问是哪里出了问题呢,内存分配大小吗~该怎么解决呢~
另外子进程是不是就可以直接用pBuf的数据?
------解决方案--------------------
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366551(v=vs.85).aspx
------解决方案--------------------
引用:
Quote: 引用:

memcpy_s(pView, VIEW_SIZE, pszMessage,nSize);  
将这句改成:
memcpy_s(pView, MAP_SIZE, pszMessage,nSize);  
额~改了之后还会有这样的错误的
检查你程序中的所有memcpy_s调用, 第二个参数的值不能比第4个参数小