次のように、WindowsXPSP3で実行されているローカルサービスアプリのトップレベルの例外ハンドラーからMiniDumpWriteDumpAPIを呼び出しています。
_MINIDUMP_EXCEPTION_INFORMATION ExInfo;
DWORD dwProcID = ::GetCurrentProcessId();
DWORD dwThreadID = ::GetCurrentThreadId();
ExInfo.ThreadId = dwThreadID;
ExInfo.ExceptionPointers = pExceptionInfo; //Receive it from the exception handler
ExInfo.ClientPointers = NULL;
if(!pfnMiniDumpWriteDump(GetCurrentProcess(), dwProcID, hFile, MiniDumpNormal, &ExInfo, NULL, NULL))
{
int nOSError = ::GetLastError(); //I receive 0x80070057
}
上記はエラーコード0x80070057で失敗しますが、ダンプタイプをMiniDumpWithFullMemoryに変更すると、問題なく動作します。なぜですか?