KeInitializeCrashDumpHeader, fonction (ntddk.h)
La routine KeInitializeCrashDumpHeader fournit les informations d’en-tête requises par le système pour un fichier de vidage sur incident.
Syntaxe
NTSTATUS KeInitializeCrashDumpHeader(
[in] ULONG DumpType,
[in] ULONG Flags,
[out] PVOID Buffer,
[in] ULONG BufferSize,
[out, optional] PULONG BufferNeeded
);
Paramètres
[in] DumpType
Spécifie le type de fichier de vidage. La seule valeur valide est DUMP_TYPE_FULL.
[in] Flags
Spécifie des indicateurs pour le fichier de vidage. La seule valeur valide est 0.
[out] Buffer
Pointeur vers la mémoire tampon qui reçoit les informations d’en-tête.
[in] BufferSize
Spécifie la taille en octets de la mémoire tampon pointée par tampon.
[out, optional] BufferNeeded
Si vous le souhaitez, pointeur vers une variable qui reçoit la taille nécessaire pour contenir les informations d’en-tête complètes.
Valeur de retour
KeInitializeCrashDumpHeader retourne STATUS_SUCCESS en cas de réussite ou le code d’erreur NTSTATUS approprié en cas d’échec.
Remarques
Les pilotes peuvent utiliser cette routine pour créer manuellement un fichier de vidage sur incident. Le fichier peut être créé à tout moment et utilisé par un débogueur pour examiner l’état du système.
Pour créer un fichier de vidage sur incident, appelez KeInitializeCrashDumpHeader pour créer l’en-tête, puis ajoutez le contenu de la mémoire à l’en-tête. Notez que le pilote n’est pas nécessaire pour enregistrer le contenu de la mémoire immédiatement après l’appel de la routine : l’en-tête peut normalement être créé à tout moment avant l’écriture du fichier de vidage sur incident.
Étant donné que la routine est conçue pour être appelée bien avant l’enregistrement du contenu de la mémoire, elle présente les limitations suivantes :
- La routine n’enregistre aucune information sur les enregistrements d’exceptions actifs.
- Si la taille de la RAM système change, l’en-tête doit être recréé.
À compter de Windows 8, KeInitializeCrashDumpHeader écrit toujours l’adresse de base du répertoire de page du processus système dans l’en-tête de vidage sur incident, quel que soit le contexte de processus à partir duquel KeInitializeCrashDumpHeader est appelé. Le débogueur peut utiliser ce répertoire pour accéder au fichier de vidage sur incident dans le contexte du processus système.
Dans les versions antérieures de Windows, KeInitializeCrashDumpHeader écrit l’adresse de base du répertoire de page du contexte de processus actuel de l’appelant dans l’en-tête crash-dump. Par conséquent, KeInitializeCrashDumpHeader doit être appelée à partir du processus système. Sinon, le débogueur ne pourra pas accéder au fichier de vidage sur incident dans le contexte de processus dans lequel le fichier a été enregistré.
À compter de Windows 8, KeInitializeCrashDumpHeader est déclaré dans le fichier d’en-tête Wdm.h dans le Kit de pilotes Windows (WDK). Pour utiliser cette routine avec les versions antérieures de WDK, incluez la déclaration de fonction suivante dans votre code de pilote :
NTSTATUS
KeInitializeCrashDumpHeader(
__in ULONG DumpType,
__in ULONG Flags,
__out PVOID Buffer,
__in ULONG BufferSize,
__out_opt PULONG BufferNeeded
);
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible à partir de Windows Server 2003 avec SP1. |
plateforme cible | Universel |
d’en-tête | ntddk.h (include Ntddk.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | N’importe quel niveau |