PSHED_PI_GET_ALL_ERROR_SOURCES função de retorno de chamada (ntddk.h)

A função de retorno de chamada GetAllErrorSources de um plug-in PSHED retorna uma lista de estruturas de descritor de origem de erro que representam todas as fontes de erro implementadas pela plataforma de hardware.

Sintaxe

PSHED_PI_GET_ALL_ERROR_SOURCES PshedPiGetAllErrorSources;

NTSTATUS PshedPiGetAllErrorSources(
  [in, out, optional] PVOID PluginContext,
  [in, out]           PULONG Count,
  [in, out]           PWHEA_ERROR_SOURCE_DESCRIPTOR *ErrorSrcs,
  [in, out]           PULONG Length
)
{...}

Parâmetros

[in, out, optional] PluginContext

Um ponteiro para a área de contexto que foi especificada no membro Context da estrutura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET quando o plug-in PSHED chamou a função PshedRegisterPlugin para se registrar no PSHED.

[in, out] Count

Um ponteiro para uma variável do tipo ULONG. Quando a função de retorno de chamada GetAllErrorSources é chamada, essa variável contém o número de estruturas de descritor de origem de erro contidas no buffer apontado pelo parâmetro ErrorSources , conforme fornecido pelo PSHED. Se a função de retorno de chamada GetAllErrorSources alterar o número de estruturas de descritor de origem de erro que estão no buffer, ela deverá definir essa variável para o novo número de estruturas de descritor de origem de erro antes de retornar.

[in, out] ErrorSrcs

Um ponteiro para um buffer que recebe uma matriz de estruturas WHEA_ERROR_SOURCE_DESCRIPTOR que representa todas as fontes de erro implementadas pela plataforma de hardware. Quando a função de retorno de chamada GetAllErrorSources é chamada, esse buffer contém uma lista inicial de estruturas de descritor de origem de erro fornecidas pelo PSHED. O plug-in PSHED pode fazer alterações na lista para que ele represente com precisão todas as fontes de erro implementadas pela plataforma de hardware.

[in, out] Length

Um ponteiro para uma variável do tipo ULONG que contém o tamanho, em bytes, do buffer apontado pelo parâmetro ErrorSources . Se o tamanho for muito pequeno para conter a lista modificada de estruturas de descritor de origem de erro, a função de retorno de chamada GetAllErrorSources definirá essa variável como o tamanho do buffer necessário para conter a lista e retornará STATUS_BUFFER_TOO_SMALL.

Retornar valor

A função de retorno de chamada GetAllErrorSources de um plug-in PSHED retorna um dos seguintes códigos NTSTATUS:

Código de retorno Descrição
STATUS_SUCCESS A lista modificada de estruturas de descritor de origem de erro foi retornada com êxito no buffer apontado pelo parâmetro ErrorSources .
STATUS_BUFFER_TOO_SMALL O tamanho do buffer apontado pelo parâmetro ErrorSources é muito pequeno para conter a lista de estruturas de descritor de origem de erro.
STATUS_UNSUCCESSFUL Ocorreu um erro.

Comentários

Um plug-in PSHED que participa da descoberta de origem de erro define o membro Callbacks.GetAllErrorSources da estrutura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET para apontar para sua função de retorno de chamada GetAllErrorSources quando o plug-in chama a função PshedRegisterPlugin para se registrar no PSHED. O plug-in PSHED também deve definir o sinalizador PshedFADiscovery no membro FunctionalAreaMask da estrutura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET .

Quando o sistema operacional é iniciado, o kernel do Windows chama o PSHED para recuperar a lista de estruturas de descritor de origem de erro que representa todas as fontes de erro implementadas pela plataforma de hardware. O PSHED cria uma lista inicial de estruturas de descritor de origem de erro. Se um plug-in PSHED estiver registrado para participar da descoberta de origem de erro, o PSHED chamará a função de retorno de chamada GetAllErrorSources do plug-in PSHED. O plug-in PSHED pode fazer qualquer combinação das seguintes alterações na lista de estruturas de descritor de origem de erro para que ele represente com precisão todas as fontes de erro implementadas pela plataforma de hardware.

  • Modifique o conteúdo de uma ou mais das estruturas do descritor de origem do erro.

  • Remova uma ou mais das estruturas de descritor de origem de erro da lista.

  • Adicione uma ou mais novas estruturas de descritor de origem de erro à lista.

Se o plug-in PSHED precisar adicionar uma ou mais novas estruturas de descritor de origem de erro à lista e o tamanho do buffer for muito pequeno para incluir as estruturas adicionais, a função de retorno de chamada GetAllErrorSources do plug-in PSHED deverá definir a variável apontada pelo parâmetro Length para o tamanho do buffer necessário para conter a lista com as estruturas adicionais e retornar STATUS_BUFFER_TOO_SMALL. Nessa situação, o PSHED alocará um buffer maior, copiará a lista de estruturas de descritor de origem de erro para o novo buffer e chamará a função de retorno de chamada GetAllErrorSources do plug-in PSHED uma segunda vez.

Um plug-in PSHED que participa da descoberta de origem de erro também pode implementar uma função opcional de retorno de chamada GetErrorSourceInfo . Nessa situação, o plug-in PSHED também define o membro Callbacks.GetErrorSourceInfo da estrutura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET para apontar para sua função de retorno de chamada GetErrorSourceInfo quando chama a função PshedRegisterPlugin para se registrar no PSHED.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho ntddk.h (inclua Ntddk.h)
IRQL IRQL = DISPATCH_LEVEL

Confira também

GetErrorSourceInfo

PshedRegisterPlugin

WHEA_ERROR_SOURCE_DESCRIPTOR

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET