다음을 통해 공유


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

이전 버전의 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부터 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 ntddk.h(Ntddk.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 모든 수준