KeInitializeCrashDumpHeader-Funktion (ntddk.h)

Die KeInitializeCrashDumpHeader-Routine stellt die Headerinformationen bereit, die das System für eine Absturzabbilddatei benötigt.

Syntax

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

Parameter

[in] DumpType

Gibt den Typ der Speicherabbilddatei an. Der einzige gültige Wert ist DUMP_TYPE_FULL.

[in] Flags

Gibt Flags für die Speicherabbilddatei an. Der einzige gültige Wert ist 0.

[out] Buffer

Zeiger auf den Puffer, der die Headerinformationen empfängt.

[in] BufferSize

Gibt die Größe des Puffers in Byte an, auf den buffer verweist.

[out, optional] BufferNeeded

Optional ein Zeiger auf eine Variable, die die größe empfängt, die erforderlich ist, um die vollständigen Headerinformationen zu enthalten.

Rückgabewert

KeInitializeCrashDumpHeader gibt STATUS_SUCCESS bei Erfolg oder den entsprechenden NTSTATUS-Fehlercode bei Einem Fehler zurück.

Hinweise

Treiber können diese Routine verwenden, um manuell eine Absturzabbilddatei zu erstellen. Die Datei kann jederzeit erstellt und von einem Debugger verwendet werden, um den Zustand des Systems zu untersuchen.

Um eine Absturzabbilddatei zu erstellen, rufen Sie KeInitializeCrashDumpHeader auf, um den Header zu erstellen, und fügen Sie dann den Inhalt des Arbeitsspeichers an den Header an. Beachten Sie, dass der Treiber nicht unmittelbar nach dem Aufrufen der Routine den Inhalt des Arbeitsspeichers aufzeichnen muss. Der Header kann normalerweise jederzeit erstellt werden, bevor die Absturzabbilddatei geschrieben wird.

Da die Routine so konzipiert ist, dass sie aufgerufen wird, bevor der Speicherinhalt aufgezeichnet wird, gelten die folgenden Einschränkungen:

  • Die Routine zeichnet keine Informationen zu aktiven Ausnahmedatensätzen auf.
  • Wenn sich die Größe des System-RAM ändert, muss der Header neu erstellt werden.
Die Routine zeichnet keine sekundären Dumpdaten auf.

Ab Windows 8 schreibt KeInitializeCrashDumpHeader immer die Basisadresse des Systemprozessseitenverzeichnisses in den Absturzabbildheader, unabhängig vom Prozesskontext, aus dem KeInitializeCrashDumpHeader aufgerufen wird. Der Debugger kann dieses Verzeichnis verwenden, um im Kontext des Systemprozesses auf die Absturzabbilddatei zuzugreifen.

In früheren Versionen von Windows schreibt KeInitializeCrashDumpHeader die Basisadresse des Seitenverzeichnisses des aktuellen Prozesskontexts des Aufrufers in den Absturzabbildheader. Daher muss KeInitializeCrashDumpHeader aus dem Systemprozess aufgerufen werden. Andernfalls kann der Debugger nicht auf die Absturzabbilddatei in dem Prozesskontext zugreifen, in dem die Datei gespeichert wurde.

Ab Windows 8 wird KeInitializeCrashDumpHeader in der Wdm.h-Headerdatei im Windows Driver Kit (WDK) deklariert. Um diese Routine mit früheren Versionen des WDK zu verwenden, fügen Sie die folgende Funktionsdeklaration in Ihren Treibercode ein:

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows Server 2003 mit SP1.
Zielplattform Universell
Header ntddk.h (include Ntddk.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Beliebige Ebene