KeInitializeCrashDumpHeader 函数 (wdm.h)

KeInitializeCrashDumpHeader 例程提供系统对故障转储文件所需的标头信息。

语法

NTSTATUS KeInitializeCrashDumpHeader(
  [in]            ULONG  DumpType,
  [in]            ULONG  Flags,
  [out]           PVOID  Buffer,
  [in]            ULONG  BufferSize,
  [out, optional] PULONG BufferNeeded
);

参数

[in] DumpType

指定转储文件的类型。 唯一的有效值为DUMP_TYPE_FULL。

[in] Flags

指定转储文件的标志。 唯一的有效值为 0。

[out] Buffer

指向接收标头信息的缓冲区的指针。

[in] BufferSize

指定 缓冲区指向的缓冲区的大小(以字节为单位)。

[out, optional] BufferNeeded

(可选)指向接收保存完整标头信息所需的大小的变量的指针。

返回值

KeInitializeCrashDumpHeader 在成功时返回STATUS_SUCCESS,或者在失败时返回相应的 NTSTATUS 错误代码。

言论

驱动程序可以使用此例程手动创建故障转储文件。 可以随时创建该文件,调试器使用该文件来检查系统的状态。

若要创建故障转储文件,请调用 KeInitializeCrashDumpHeader 创建标头,然后将内存内容追加到标头。 请注意,在调用例程后,驱动程序不需要立即记录内存的内容:通常在写入故障转储文件之前随时创建标头。

由于例程在记录内存内容之前设计为良好调用,因此它具有以下限制:

  • 例程不会记录有关活动异常记录的任何信息。
  • 如果系统 RAM 的大小发生更改,则必须重新创建标头。
该例程不记录任何辅助转储数据。

从 Windows 8 开始,KeInitializeCrashDumpHeader 始终将系统进程页目录的基址写入故障转储标头,而不考虑调用 KeInitializeCrashDumpHeader 的进程上下文。 调试器可以使用此目录访问系统进程的上下文中的故障转储文件。

在早期版本的 Windows 中,KeInitializeCrashDumpHeader 将调用方当前进程上下文的页面目录的基址写入故障转储标头。 因此,必须从系统进程调用 KeInitializeCrashDumpHeader。 否则,调试器将无法访问保存文件的进程上下文中的故障转储文件。

从 Windows 8 开始,KeInitializeCrashDumpHeader 在 Windows 驱动程序工具包 (WDK) 的 Wdm.h 头文件中声明。 若要将此例程用于早期版本的 WDK,请在驱动程序代码中包含以下函数声明:

NTSTATUS
  KeInitializeCrashDumpHeader(
    __in ULONG  DumpType,
    __in ULONG  Flags,
    __out PVOID  Buffer,
    __in ULONG  BufferSize,
    __out_opt PULONG  BufferNeeded
    );

要求

要求 价值
最低支持的客户端 从 Windows Server 2003 SP1 开始可用。
目标平台 普遍
标头 wdm.h (include Ntddk.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何级别