Condividi tramite


PSHED_PI_RETRIEVE_ERROR_INFO funzione di callback (ntddk.h)

Una funzione di callback RetrieveErrorInfo di un plug-in PSHED recupera informazioni sull'errore specifico della piattaforma relative a un errore hardware che si è verificato.

Sintassi

PSHED_PI_RETRIEVE_ERROR_INFO PshedPiRetrieveErrorInfo;

NTSTATUS PshedPiRetrieveErrorInfo(
  [in, out, optional] PVOID PluginContext,
  [in]                PWHEA_ERROR_SOURCE_DESCRIPTOR ErrorSource,
  [in]                ULONGLONG BufferLength,
  [in, out]           PWHEA_ERROR_PACKET Packet
)
{...}

Parametri

[in, out, optional] PluginContext

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

[in] ErrorSource

Puntatore a una struttura di WHEA_ERROR_SOURCE_DESCRIPTOR che descrive l'origine dell'errore che ha segnalato l'errore hardware.

[in] BufferLength

Dimensione, in byte, del buffer a cui punta il parametro Packet .

[in, out] Packet

Puntatore a una struttura di WHEA_ERROR_PACKET che descrive il pacchetto di errore hardware per l'errore hardware.

Valore restituito

La funzione di callback RetrieveErrorInfo di un plug-in PSHED restituisce uno dei codici NTSTATUS seguenti:

Codice restituito Descrizione
STATUS_SUCCESS Il pacchetto di errore hardware è stato aggiornato correttamente con eventuali informazioni sull'errore specifiche della piattaforma.
STATUS_BUFFER_TOO_SMALL Le dimensioni del buffer a cui punta il parametro Packet come specificato dal parametro BufferLength sono troppo piccole per contenere il pacchetto di errore hardware se viene aggiornato con le informazioni sull'errore specifiche della piattaforma.
STATUS_NOT_SUPPORTED Il plug-in PSHED non supporta l'origine errore specificata.
STATUS_UNSUCCESSFUL Si è verificato un errore.

Commenti

Un plug-in PSHED che partecipa al recupero delle informazioni sugli errori imposta i membri Callbacks.RetrieveErrorInfo, Callbacks.FinalizeErrorRecord e Callbacks.ClearErrorStatus della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET in modo che puntino ai relativi callback RetrieveErrorInfo, FinalizeErrorRecord e ClearErrorStatus quando il plug-in chiama la funzione PshedRegisterPlugin per registrarsi con PSHED. Il plug-in PSHED deve anche impostare il flag PshedFAErrorInfoRetrieval nel membro FunctionalAreaMask della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET.

Ogni gestore di errori hardware di basso livello (LLHEH) chiama in PSHED per recuperare eventuali informazioni sull'errore specifico della piattaforma relative a un errore hardware che si è verificato. Se un plug-in PSHED viene registrato per partecipare al recupero delle informazioni sugli errori, PSHED chiama la funzione di callback RetrieveErrorInfo del plug-in PSHED in modo che possa aggiornare il pacchetto di errore hardware con qualsiasi informazione di errore specifica della piattaforma. Il plug-in PSHED può modificare il contenuto esistente del pacchetto di errore hardware e aggiungere informazioni supplementari al pacchetto di errore hardware. Le informazioni supplementari vengono aggiunte a un pacchetto di errore hardware a partire dall'offset specificato dal membro RawDataOffset della struttura WHEA_ERROR_PACKET .

Un plug-in PSHED deve garantire che non aggiunga informazioni supplementari oltre la fine del pacchetto di errore hardware. La quantità di memoria allocata da un LLHEH per un buffer in modo che contenga un determinato pacchetto di errore hardware viene calcolata dal membro MaxRawDataLength della struttura WHEA_ERROR_SOURCE_DESCRIPTOR che descrive l'origine dell'errore. Se un plug-in PSHED richiede spazio del buffer aggiuntivo per contenere le informazioni supplementari, deve partecipare all'individuazione dell'origine degli errori e aumentare il valore nel membro MaxRawDataLength della struttura di WHEA_ERROR_SOURCE_DESCRIPTOR per ogni origine di errore in base alle esigenze per tenere conto di eventuali informazioni supplementari.

Per tutte le origini di errore, la funzione di callback RetrieveErrorInfo del plug-in PSHED viene chiamata almeno IRQL di DISPATCH_LEVEL. La funzione di callback RetrieveErrorInfo del plug-in PSHED deve eseguire solo operazioni ed effettuare chiamate ad altre funzioni consentite a quel livello IRQL elevato.

Un'attività importante di una funzione di callback RetrieveErrorInfo di un plug-in PSHED consiste nel garantire che la gravità della condizione di errore specificata dal membro ErrorSeverity del WHEA_ERROR_PACKET sia appropriata. Ad esempio, se il livello di gravità della condizione di errore viene segnalato come WheaErrSevFatal da LLHEH, ma il plug-in PSHED supporta un meccanismo di ripristino per la condizione di errore specifica segnalata, il plug-in PSHED può modificare il livello di gravità su WheaErrSevRecoverable in modo che il sistema operativo tenti il ripristino dall'errore. Analogamente, se il livello di gravità della condizione di errore viene segnalato come WheaErrSevRecoverable da LLHEH, ma il plug-in PSHED riconosce che il tentativo di ripristino della particolare condizione di errore segnalata causerebbe solo ulteriori problemi, il plug-in PSHED può modificare il livello di gravità su WheaErrSevFatal in modo che il sistema operativo non tenti il ripristino dall'errore.

Per correggere gli errori hardware, un plug-in PSHED deve recuperare tutte le informazioni sullo stato di errore necessarie per l'elaborazione della condizione di errore dall'interno della relativa funzione di callback RetrieveErrorInfo , perché il resto dell'elaborazione dell'errore hardware non è garantito che venga sincronizzato con LLHEH.

Requisiti

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

Vedi anche

ClearErrorStatus

FinalizeErrorRecord

PshedRegisterPlugin

WHEA_ERROR_PACKET

WHEA_ERROR_SOURCE_DESCRIPTOR

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET