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 시작하여 KeInitializeCrashDumpHeaderKeInitializeCrashDumpHeader가 호출되는 프로세스 컨텍스트에 관계없이 항상 시스템 프로세스 페이지 디렉터리의 기본 주소를 크래시 덤프 헤더에 씁니다. 디버거는 이 디렉터리를 사용하여 시스템 프로세스의 컨텍스트에서 크래시 덤프 파일에 액세스할 수 있습니다.

이전 버전의 Windows에서 KeInitializeCrashDumpHeader 는 호출자의 현재 프로세스 컨텍스트 페이지 디렉터리의 기본 주소를 크래시 덤프 헤더에 씁니다. 따라서 KeInitializeCrashDumpHeader는 시스템 프로세스에서 호출되어야 합니다. 그렇지 않으면 디버거가 파일이 저장된 프로세스 컨텍스트에서 크래시 덤프 파일에 액세스할 수 없습니다.

Windows 8 시작하여 KeInitializeCrashDumpHeader는 WDK(Windows 드라이버 키트)의 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 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 모든 수준