PSHED_PI_READ_ERROR_RECORD funzione di callback (ntddk.h)
La funzione di callback ReadErrorRecord di un plug-in PSHED legge un record di errore dall'archiviazione dati persistente del sistema.
Sintassi
PSHED_PI_READ_ERROR_RECORD PshedPiReadErrorRecord;
NTSTATUS PshedPiReadErrorRecord(
[in, out, optional] PVOID PluginContext,
[in] ULONG Flags,
[in] ULONGLONG ErrorRecordId,
[out] PULONGLONG NextErrorRecordId,
[in, out] PULONG RecordLength,
[out] PWHEA_ERROR_RECORD ErrorRecord
)
{...}
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] Flags
Combinazione OR'ed bit per bit di flag che influiscono sull'operazione di lettura. Non sono attualmente definiti flag.
[in] ErrorRecordId
Identificatore del record di errore da leggere dall'archivio dati permanente del sistema. Se non è presente un record di errore archiviato nell'archivio dati permanente del sistema che corrisponde a questo identificatore, la funzione di callback ReadErrorRecord deve restituire STATUS_OBJECT_NOT_FOUND.
[out] NextErrorRecordId
Puntatore a una variabile tipizzata ULONG che riceve l'identificatore del record di errore successivo archiviato nell'archivio dati permanente del sistema. Se non sono presenti altri record di errore archiviati nell'archivio dati permanente del sistema, l'identificatore per il record di errore attualmente in lettura deve essere restituito in questo parametro.
[in, out] RecordLength
Puntatore a una variabile tipizzata ULONG contenente le dimensioni, in byte, del buffer a cui punta il parametro ErrorRecord . Se le dimensioni del buffer sono sufficienti per contenere il record di errore letto, la funzione di callback ReadErrorRecord imposta questa variabile sulle dimensioni, in byte, del record di errore restituito nel buffer. Tuttavia, se le dimensioni del buffer sono troppo piccole per contenere il record di errore letto, la funzione di callback ReadErrorRecord imposta questa variabile sulle dimensioni, in byte, necessaria per contenere il record di errore. In questo caso la funzione di callback ReadErrorRecord deve restituire STATUS_BUFFER_TOO_SMALL.
[out] ErrorRecord
Puntatore a un buffer che riceve il record di errore letto dall'archivio dati permanente del sistema.
Valore restituito
Una funzione di callback ReadErrorRecord di un plug-in PSHED restituisce uno dei codici NTSTATUS seguenti:
Codice restituito | Descrizione |
---|---|
STATUS_SUCCESS | Il record di errore è stato letto correttamente dall'archivio dati permanente del sistema. |
STATUS_OBJECT_NOT_FOUND | Non è presente alcun record di errore nell'archivio dati permanente del sistema che corrisponde all'identificatore specificato nel parametro ErrorRecordId . |
STATUS_BUFFER_TOO_SMALL | La dimensione del buffer è troppo piccola per contenere il record di errore letto. |
STATUS_UNSUCCESSFUL | Si è verificato un errore. |
Commenti
Un plug-in PSHED che partecipa alla persistenza dei record di errore imposta i membri Callbacks.WriteErrorRecord, Callbacks.ReadErrorRecord e Callbacks.ClearErrorRecord della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET in modo che puntino alle funzioni di callback WriteErrorRecord, ReadErrorRecord e ClearErrorRecord quando il plug-in chiama la funzione PshedRegisterPlugin per registrarsi con PSHED. Il plug-in PSHED deve anche impostare il flag PshedFAErrorRecordPersistence nel membro FunctionalAreaMask della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET .
Il kernel di Windows chiama pshed per leggere un record di errore dall'archivio dati permanente del sistema dopo il riavvio del sistema in seguito a una condizione di errore irreversibile o altrimenti irreversibile. Se un plug-in PSHED viene registrato per partecipare alla persistenza dei record di errore, PSHED chiama la funzione di callback ReadErrorRecord del plug-in PSHED per eseguire l'operazione di lettura. Il meccanismo usato per leggere il record di errore dall'archivio dati permanente del sistema è specifico della piattaforma.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | ntddk.h (include Ntddk.h) |
IRQL | IRQL = DISPATCH_LEVEL |