Condividi tramite


PSHED_PI_GET_ALL_ERROR_SOURCES funzione di callback (ntddk.h)

Una funzione di callback getAllErrorSources di PSHED restituisce un elenco di strutture descrittori dell'origine degli errori che rappresentano tutte le origini di errore implementate dalla piattaforma hardware.

Sintassi

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
)
{...}

Parametri

[in, out, optional] PluginContext

Puntatore all'area di contesto specificata nel membro Contesto della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET quando il plug-in PSHED ha chiamato la funzione PshedRegisterPlugin per registrarsi con PSHED.

[in, out] Count

Puntatore a una variabile tipizzata ULONG. Quando viene chiamata la funzione di callback GetAllErrorSources , questa variabile contiene il numero di strutture descrittori dell'origine degli errori contenute nel buffer a cui fa riferimento il parametro ErrorSources , come fornito dal PSHED. Se la funzione di callback GetAllErrorSources modifica il numero di strutture descrittori dell'origine degli errori presenti nel buffer, è necessario impostare questa variabile sul nuovo numero di strutture del descrittore di origine degli errori prima che venga restituito.

[in, out] ErrorSrcs

Puntatore a un buffer che riceve una matrice di strutture WHEA_ERROR_SOURCE_DESCRIPTOR che rappresenta tutte le origini di errore implementate dalla piattaforma hardware. Quando viene chiamata la funzione di callback GetAllErrorSources , questo buffer contiene un elenco iniziale di strutture descrittori dell'origine degli errori fornite dal PSHED. Il plug-in PSHED può apportare modifiche all'elenco in modo che rappresenti in modo accurato tutte le origini di errore implementate dalla piattaforma hardware.

[in, out] Length

Puntatore a una variabile tipizzata ULONG contenente le dimensioni, in byte, del buffer a cui punta il parametro ErrorSources . Se la dimensione è troppo piccola per contenere l'elenco modificato di strutture descrittori dell'origine degli errori, la funzione di callback GetAllErrorSources imposta questa variabile sulle dimensioni del buffer necessarie per contenere l'elenco e restituisce STATUS_BUFFER_TOO_SMALL.

Valore restituito

Una funzione di callback getAllErrorSources di PSHED restituisce uno dei codici NTSTATUS seguenti:

Codice restituito Descrizione
STATUS_SUCCESS L'elenco modificato delle strutture descrittori di origine degli errori è stato restituito correttamente nel buffer a cui punta il parametro ErrorSources .
STATUS_BUFFER_TOO_SMALL Le dimensioni del buffer a cui punta il parametro ErrorSources sono troppo piccole per contenere l'elenco delle strutture descrittori di origine degli errori.
STATUS_UNSUCCESSFUL Si è verificato un errore.

Commenti

Un plug-in PSHED che partecipa all'individuazione dell'origine degli errori imposta il membro Callbacks.GetAllErrorSources della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET per puntare alla funzione di callback GetAllErrorSources quando il plug-in chiama la funzione PshedRegisterPlugin per registrarsi con PSHED. Il plug-in PSHED deve anche impostare il flag PshedFADiscovery nel membro FunctionalAreaMask della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET .

All'avvio del sistema operativo, il kernel di Windows chiama il PSHED per recuperare l'elenco di strutture descrittori di origine degli errori che rappresentano tutte le origini di errore implementate dalla piattaforma hardware. PSHED crea un elenco iniziale di strutture descrittori di origine degli errori. Se un plug-in PSHED è registrato per partecipare all'individuazione dell'origine degli errori, PSHED chiama la funzione di callback GetAllErrorSources del plug-in PSHED. Il plug-in PSHED può apportare qualsiasi combinazione delle modifiche seguenti all'elenco delle strutture descrittori di origine degli errori in modo che rappresenti in modo accurato tutte le origini di errore implementate dalla piattaforma hardware.

  • Modificare il contenuto di una o più strutture del descrittore di origine degli errori.

  • Rimuovere una o più strutture descrittori dell'origine degli errori dall'elenco.

  • Aggiungere uno o più nuovi descrittori dell'origine degli errori all'elenco.

Se il plug-in PSHED deve aggiungere una o più nuove strutture di descrittore dell'origine degli errori all'elenco e le dimensioni del buffer sono troppo piccole per includere le strutture aggiuntive, la funzione di callback getAllErrorSources PSHED deve impostare la variabile puntata al parametro Length alle dimensioni del buffer necessarie per contenere l'elenco con le strutture aggiuntive e restituire STATUS_BUFFER_TOO_SMALL. In questa situazione, il PSHED allocherà un buffer più grande, copia l'elenco delle strutture descrittori dell'origine degli errori nel nuovo buffer e chiamerà la funzione di callback getAllErrorSources di PSHED una seconda volta.

Un plug-in PSHED che partecipa all'individuazione dell'origine degli errori può anche implementare una funzione di callback GetErrorSourceInfo facoltativa. In questa situazione, il plug-in PSHED imposta anche il membro Callbacks.GetErrorSourceInfo della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET per puntare alla funzione di callback GetErrorSourceInfo quando chiama la funzione PshedRegisterPlugin per registrarsi con PSHED.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione ntddk.h (include Ntddk.h)
IRQL IRQL = DISPATCH_LEVEL

Vedi anche

GetErrorSourceInfo

PshedRegisterPlugin

WHEA_ERROR_SOURCE_DESCRIPTOR

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET