Función KeInitializeCrashDumpHeader (ntddk.h)

La rutina KeInitializeCrashDumpHeader proporciona la información de encabezado que el sistema requiere para un archivo de volcado de memoria.

Sintaxis

NTSTATUS KeInitializeCrashDumpHeader(
  [in]            ULONG  DumpType,
  [in]            ULONG  Flags,
  [out]           PVOID  Buffer,
  [in]            ULONG  BufferSize,
  [out, optional] PULONG BufferNeeded
);

Parámetros

[in] DumpType

Especifica el tipo de archivo de volcado de memoria. El único valor válido es DUMP_TYPE_FULL.

[in] Flags

Especifica marcas para el archivo de volcado de memoria. El único valor válido es 0.

[out] Buffer

Puntero al búfer que recibe la información de encabezado.

[in] BufferSize

Especifica el tamaño en bytes del búfer al que apunta el búfer.

[out, optional] BufferNeeded

Opcionalmente, un puntero a una variable que recibe el tamaño necesario para contener la información de encabezado completa.

Valor devuelto

KeInitializeCrashDumpHeader devuelve STATUS_SUCCESS correctamente o el código de error NTSTATUS adecuado en caso de error.

Comentarios

Los controladores pueden usar esta rutina para crear manualmente un archivo de volcado de memoria. Un depurador puede crear el archivo en cualquier momento y usarlo para examinar el estado del sistema.

Para crear un archivo de volcado de memoria, llame a KeInitializeCrashDumpHeader para crear el encabezado y, a continuación, anexe el contenido de la memoria al encabezado. Tenga en cuenta que el controlador no es necesario para registrar el contenido de la memoria inmediatamente después de llamar a la rutina: el encabezado normalmente se puede crear en cualquier momento antes de que se escriba el archivo de volcado de memoria.

Dado que la rutina está diseñada para llamarse bien antes de que se registre el contenido de la memoria, tiene las siguientes limitaciones:

  • La rutina no registra ninguna información sobre los registros de excepciones activos.
  • Si cambia el tamaño de la RAM del sistema, se debe volver a crear el encabezado.
La rutina no registra ningún dato de volcado secundario.

A partir de Windows 8, KeInitializeCrashDumpHeader siempre escribe la dirección base del directorio de página del proceso del sistema en el encabezado de volcado de memoria, independientemente del contexto de proceso desde el que se llama a KeInitializeCrashDumpHeader. El depurador puede usar este directorio para acceder al archivo de volcado de memoria en el contexto del proceso del sistema.

En versiones anteriores de Windows, KeInitializeCrashDumpHeader escribe la dirección base del directorio de páginas del contexto de proceso actual del autor de la llamada en el encabezado de volcado de memoria. Por lo tanto, se debe llamar a KeInitializeCrashDumpHeader desde el proceso del sistema. De lo contrario, el depurador no podrá acceder al archivo de volcado de memoria en el contexto del proceso en el que se guardó el archivo.

A partir de Windows 8, KeInitializeCrashDumpHeader se declara en el archivo de encabezado Wdm.h en el Kit de controladores de Windows (WDK). Para usar esta rutina con versiones anteriores de WDK, incluya la siguiente declaración de función en el código del controlador:

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

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows Server 2003 con SP1.
Plataforma de destino Universal
Encabezado ntddk.h (incluya Ntddk.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL Cualquier nivel