Freigeben über


KeInitializeCrashDumpHeader-Funktion (wdm.h)

Die KeInitializeCrashDumpHeader Routine stellt die Kopfzeileninformationen 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 Dumpdatei an. Der einzige gültige Wert ist 0.

[out] Buffer

Zeigen Sie auf den Puffer, der die Headerinformationen empfängt.

[in] BufferSize

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

[out, optional] BufferNeeded

Optional: Ein Zeiger auf eine Variable, die die erforderliche Größe empfängt, um die vollständigen Kopfzeileninformationen zu enthalten.

Rückgabewert

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

Bemerkungen

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.

Rufen Sie zum Erstellen einer Absturzabbilddatei 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 benötigt wird, um den Inhalt des Arbeitsspeichers unmittelbar nach dem Aufrufen der Routine aufzuzeichnen: Der Header kann normalerweise jederzeit erstellt werden, bevor die Absturzabbilddatei geschrieben wird.

Da die Routine so konzipiert ist, dass sie gut 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 Speicherabbilddaten 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 müssen KeInitializeCrashDumpHeader aus dem Systemprozess aufgerufen werden. Andernfalls kann der Debugger nicht auf die Absturzabbilddatei im 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 von WDK zu verwenden, schließen Sie die folgende Funktionsdeklaration in Den Treibercode ein:

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

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows Server 2003 mit SP1.
Zielplattform- Universal
Header- wdm.h (include Ntddk.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- Beliebige Ebene