KeInitializeCrashDumpHeader-Funktion (wdm.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.
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 | wdm.h (ntddk.h einschließen) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Beliebige Ebene |