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
指定 Buffer 指向的缓冲区的大小(以字节为单位)。
[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 (包括 Ntddk.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 |