PSHED_PI_RETRIEVE_ERROR_INFO funzione di callback (ntddk.h)
Un plug-in PSHED RetrieveErrorInfo funzione di callback 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 Context membro della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET quando il plug-in PSHED ha chiamato la funzione PshedRegisterPlug in per registrarsi con PSHED.
[in] ErrorSource
Puntatore a una struttura 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 WHEA_ERROR_PACKET che descrive il pacchetto di errore hardware per l'errore hardware.
Valore restituito
Un plug-in PSHED RetrieveErrorInfo funzione di callback 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 | La dimensione del buffer a cui punta il parametro packet come specificato dal parametro BufferLength è troppo piccolo 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 degli errori specificata. |
STATUS_UNSUCCESSFUL | Si è verificato un errore. |
Osservazioni
Un plug-in PSHED che partecipa al recupero delle informazioni sugli errori imposta il Callbacks.RetrieveErrorInfo, Callbacks.FinalizeErrorRecorde Callbacks.ClearErrorStatus membri della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET per puntare nel RetrieveErrorInfo, FinalizeErrorRecorde ClearErrorStatus funzioni di callback quando il plug-in chiama la funzione PshedRegisterPlugin per registrarsi con PSHED. Il plug-in PSHED deve anche impostare il flag di PshedFAErrorInfoRetrieval nel membro FunctionalAreaMask della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET.
Ogni gestore di errori hardware di basso livello (LLHEH) chiama nel PSHED per recuperare tutte le informazioni sugli errori specifici della piattaforma relative a un errore hardware che si è verificato. Se un plug-in PSHED è registrato per partecipare al recupero delle informazioni sugli errori, PSHED chiama il plug-in PSHED RetrieveErrorInfo funzione di callback in modo che possa aggiornare il pacchetto di errore hardware con eventuali informazioni sugli errori specifiche 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 RawDataOffset membro della struttura WHEA_ERROR_PACKET.
Un plug-in PSHED deve garantire che non vengano aggiunte 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 MaxRawDataLength membro della struttura di WHEA_ERROR_SOURCE_DESCRIPTOR per ogni origine degli errori in base alle esigenze per tenere conto di eventuali informazioni supplementari.
Per tutte le origini di errore, il plug-in PSHED RetrieveErrorInfo funzione di callback viene chiamato almeno IRQL di DISPATCH_LEVEL. Il plug-in PSHED RetrieveErrorInfo funzione di callback deve eseguire solo operazioni ed effettuare chiamate ad altre funzioni consentite a quel livello IRQL elevato.
Un'attività importante di un plug-in PSHED RetrieveErrorInfo funzione di callback consiste nel garantire che la gravità della condizione di errore specificata dal ErrorSeverity membro del WHEA_ERROR_PACKET sia appropriato. 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 che è stata segnalata, il plug-in PSHED può modificare il livello di gravità in 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 condizione di errore specifica 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 degli errori necessarie per l'elaborazione della condizione di errore dall'interno del relativo RetrieveErrorInfo funzione di callback, perché il resto dell'elaborazione dell'errore hardware non è garantito che venga sincronizzato con LLHEH.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | ntddk.h (include Ntddk.h) |
IRQL | IRQL >= DISPATCH_LEVEL |