线程 第二次 WriteProcessMemory 是异常 LastError提示仅完成部分的 ReadProcessMemoty 或 WriteProces

线程 第二次 WriteProcessMemory 是错误 LastError提示仅完成部分的 ReadProcessMemoty 或 WriteProces
bool CAsmOperator::InjectCode( LPVOID lpFunc, LPVOID lpParam, DWORD dwParamSize ) const
{
//读取内存
LPVOID nFuncAddr = VirtualAllocEx( m_hProc, NULL, ALLOC_MEM_SIZE, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE );
LPVOID nParmAddr = VirtualAllocEx( m_hProc, NULL, ALLOC_MEM_SIZE, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE );
if ( NULL == nFuncAddr )
{
MessageBox( NULL, _T("VirtualAllocEx Error"), NULL, MB_OK );
return false;
}


//写入内存
BOOL bResultWriteParam = WriteProcessMemory( m_hProc, nParmAddr, lpParam, ALLOC_MEM_SIZE, NULL );
BOOL bResultWriteFunc = WriteProcessMemory( m_hProc, nFuncAddr, lpFunc, ALLOC_MEM_SIZE, NULL);
int nError = GetLastError();//仅完成部分的 ReadProcessMemoty 或 WriteProcessMemory 请求

上面的代码,我是存在一个对象里面的,其中,我开了一个线程调用它,在 WriteProcessMemory第二次的时候,失败,调换了两个的顺序,还是第二个失败了。如果不用线程,直接调用,又没问题,请问是哪里错了呢?

------解决方案--------------------
LPVOID nParmAddr = VirtualAllocEx... 分配的 Size 不对