Função KeInitializeCrashDumpHeader (wdm.h)

A rotina KeInitializeCrashDumpHeader fornece as informações de cabeçalho necessárias pelo sistema para um arquivo de despejo de memória.

Sintaxe

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

Parâmetros

[in] DumpType

Especifica o tipo de arquivo de despejo. O único valor válido é DUMP_TYPE_FULL.

[in] Flags

Especifica sinalizadores para o arquivo de despejo. O único valor válido é 0.

[out] Buffer

Ponteiro para o buffer que recebe as informações de cabeçalho.

[in] BufferSize

Especifica o tamanho em bytes do buffer apontado por Buffer.

[out, optional] BufferNeeded

Opcionalmente, um ponteiro para uma variável que recebe o tamanho necessário para manter as informações completas do cabeçalho.

Retornar valor

KeInitializeCrashDumpHeader retorna STATUS_SUCCESS com êxito ou o código de erro NTSTATUS apropriado em caso de falha.

Comentários

Os drivers podem usar essa rotina para criar manualmente um arquivo de despejo de memória. O arquivo pode ser criado a qualquer momento e usado por um depurador para examinar o estado do sistema.

Para criar um arquivo de despejo de memória, chame KeInitializeCrashDumpHeader para criar o cabeçalho e acrescente o conteúdo da memória ao cabeçalho. Observe que o driver não é necessário para registrar o conteúdo da memória imediatamente após chamar a rotina: o cabeçalho normalmente pode ser criado a qualquer momento antes que o arquivo de despejo de memória seja gravado.

Como a rotina foi projetada para ser chamada bem antes que o conteúdo da memória seja registrado, ela tem as seguintes limitações:

  • A rotina não registra nenhuma informação sobre registros de exceção ativos.
  • Se o tamanho da RAM do sistema for alterado, o cabeçalho deverá ser recriado.
A rotina não registra nenhum dado de despejo secundário.

Começando com Windows 8, KeInitializeCrashDumpHeader sempre grava o endereço base do diretório da página de processo do sistema no cabeçalho de despejo de falhas, independentemente do contexto de processo do qual KeInitializeCrashDumpHeader é chamado. O depurador pode usar esse diretório para acessar o arquivo de despejo de falhas no contexto do processo do sistema.

Em versões anteriores do Windows, KeInitializeCrashDumpHeader grava o endereço base do diretório de página do contexto de processo atual do chamador no cabeçalho de despejo de memória. Assim, KeInitializeCrashDumpHeader deve ser chamado do processo do sistema. Caso contrário, o depurador não poderá acessar o arquivo de despejo de falha no contexto de processo no qual o arquivo foi salvo.

Começando com Windows 8, KeInitializeCrashDumpHeader é declarado no arquivo de cabeçalho Wdm.h no WDK (Kit de Driver do Windows). Para usar essa rotina com versões anteriores do WDK, inclua a seguinte declaração de função no código do driver:

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows Server 2003 com o SP1.
Plataforma de Destino Universal
Cabeçalho wdm.h (inclua Ntddk.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualquer nível