我正在尝试创建一个简单的C++控制台应用程序,它可以转储给定进程的内存空间(例如calc.exe),所以我使用了MiniDumpWriteDump函数
以下是代码:
DWORD procID = 1150;
char* procName = "calc.exe";
// opens the dump file
HANDLE hFile = CreateFile( "calc.dmp", GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
if(hFile)
{
// opens the process
HANDLE hProcToDump = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, procID);
if(hProcToDump)
{
// dumps via the API
BOOL rv = MiniDumpWriteDump(hProcToDump, GetProcessId(hProcToDump), hFile, MiniDumpNormal, NULL, NULL, NULL);
HRESULT hr = GetLastError();
if( !rv )
printf("MiniDumpWriteDump failed.");
else
printf("Minidump OK!");
CloseHandle( hFile );
CloseHandle( hProcToDump );
}
}但是我得到了错误:GetLastError() =hResul0x8007012b只完成了ReadProcessMemory或WriteProcessMemory请求的一部分
为什么?注意:我是Win 7 x64的管理员。
谢谢你的帮助。
发布于 2015-06-12 13:17:32
试试这个,这与您的示例类似。MiniDumpWriteDump的使用。
https://stackoverflow.com/questions/30802262
复制相似问题