Partager via


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éé.
La routine n’enregistre aucune donnée de vidage secondaire.

À 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