MiniDumpWriteDump 函式 (minidumpapiset.h)

將使用者模式迷你傾印資訊寫入指定的檔案。

語法

BOOL MiniDumpWriteDump(
  [in] HANDLE                            hProcess,
  [in] DWORD                             ProcessId,
  [in] HANDLE                            hFile,
  [in] MINIDUMP_TYPE                     DumpType,
  [in] PMINIDUMP_EXCEPTION_INFORMATION   ExceptionParam,
  [in] PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
  [in] PMINIDUMP_CALLBACK_INFORMATION    CallbackParam
);

參數

[in] hProcess

要為其產生信息的處理程式句柄。

此句柄必須具有 PROCESS_QUERY_INFORMATION ,且 PROCESS_VM_READ 進程存取權。 如果要收集句柄資訊,則也需要 PROCESS_DUP_HANDLE 存取權。 如需詳細資訊,請參閱 處理安全性和訪問許可權。 呼叫端也必須 能夠THREAD_ALL_ACCESS存取 進程中的線程。 如需詳細資訊,請參閱 線程安全性和訪問許可權

[in] ProcessId

要為其產生資訊之進程的標識碼。

[in] hFile

要寫入信息的檔案句柄。

[in] DumpType

要產生的信息類型。 此參數可以是 來自MINIDUMP_TYPE 列舉的一或多個值。

[in] ExceptionParam

MINIDUMP_EXCEPTION_INFORMATION 結構的指標,描述導致產生迷你傾印的用戶端例外狀況。 如果此參數的值是 NULL,則迷你傾印檔案中不會包含例外狀況資訊。

[in] UserStreamParam

MINIDUMP_USER_STREAM_INFORMATION 結構的指標。 如果此參數的值是 NULL,則迷你傾印檔案中不會包含任何使用者定義的資訊。

[in] CallbackParam

MINIDUMP_CALLBACK_INFORMATION 結構的指標,指定要接收擴充迷你傾印資訊的回呼例程。 如果此參數的值是 NULL,則不會執行回呼。

傳回值

如果函式成功,則傳回值為 TRUE;否則,傳回值為 FALSE。 若要擷取擴充的錯誤資訊,請呼叫 GetLastError。 請注意,最後一個錯誤將是 HRESULT 值。

如果工作已取消,則最後一個錯誤碼為 HRESULT_FROM_WIN32(ERROR_CANCELLED)

備註

MiniDumpCallback 函式會從 MiniDumpWriteDump 接收擴充的迷你傾印資訊。 它也可讓呼叫端判斷寫入迷你傾印檔案的資訊粒度,因為回呼函式可以篩選默認資訊。

如果可能的話,應該從個別進程呼叫 MiniDumpWriteDump,而不是從傾印的目標進程呼叫。 當目標進程尚未穩定時,這特別適用。 例如,如果它剛當機。 載入器死結是從目標進程中呼叫 MiniDumpWriteDump 的許多潛在副作用之一。 如果無法從個別進程呼叫 MiniDumpWriteDump ,建議您擁有專用線程,其唯一用途是呼叫 MiniDumpWriteDump。 這有助於確保堆疊在呼叫 MiniDumpWriteDump 之前尚未耗盡。

MiniDumpWriteDump 可能不會產生呼叫線程的有效堆疊追蹤。 若要解決此問題,您必須先擷取呼叫線程的狀態,再呼叫 MiniDumpWriteDump ,並使用它做為 ExceptionParam 參數。 其中一個做法是在__try/內強制例外狀況__except封鎖並使用 GetExceptionInformation 所提供的EXCEPTION_POINTERS資訊。 或者,您可以從新的背景工作線程呼叫 函式,並從傾印篩選此背景工作線程。

所有 DbgHelp 函式,例如此函式都是單個線程。 因此,從多個線程呼叫此函式可能會導致非預期的行為或記憶體損毀。 若要避免這種情況,您必須將所有並行呼叫從多個線程同步處理到此函式。

規格需求

需求
目標平台 Windows
標頭 minidumpapiset.h (包含 Dbghelp.h)
程式庫 Dbghelp.lib
Dll Dbghelp.dll;Dbgcore.dll
可轉散發套件 DbgHelp.dll 和 Dbgcore.dll

另請參閱

DbgHelp 函式

MINIDUMP_CALLBACK_INFORMATION

MINIDUMP_EXCEPTION_INFORMATION

MINIDUMP_USER_STREAM_INFORMATION

MiniDumpCallback

MiniDumpReadDumpStream