Partager via


KeInitializeCrashDumpHeader, fonction (wdm.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 vers la mémoire 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 retournée

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 tenu d’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’exception 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 la page de processus système dans l’en-tête crash-dump, 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é à 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 du Kit de pilotes Windows (WDK). Pour utiliser cette routine avec les versions antérieures du 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
    );

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows Server 2003 avec SP1.
Plateforme cible Universal
En-tête wdm.h (include Ntddk.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau