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 | 任何级别 |