Condividi tramite


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

Vedi anche

ClearErrorRecord

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET

WriteErrorRecord