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_INFORMATIONPROCESS_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 之前捕获调用线程的状态,并将其用作 ExceptionParam 参数。 执行此操作的一种方法是在__try/__except块内强制异常,并使用 GetExceptionInformation 提供的EXCEPTION_POINTERS信息。 或者,可以从新的工作线程调用函数,并从转储筛选此工作线程。

所有 DbgHelp 函数(例如此函数)都是单线程的。 因此,从多个线程调用此函数可能会导致意外行为或内存损坏。 为了避免这种情况,必须将来自多个线程的所有并发调用同步到此函数。

要求

   
目标平台 Windows
标头 minidumpapiset.h (包括 Dbghelp.h)
Library Dbghelp.lib
DLL Dbghelp.dll;Dbgcore.dll
可再发行组件 DbgHelp.dll和Dbgcore.dll

另请参阅

DbgHelp 函数

MINIDUMP_CALLBACK_INFORMATION

MINIDUMP_EXCEPTION_INFORMATION

MINIDUMP_USER_STREAM_INFORMATION

MiniDumpCallback

MiniDumpReadDumpStream