Condividi tramite


PSHED_PI_READ_ERROR_RECORD funzione di callback (ntddk.h)

Un plug-in PSHED ReadErrorRecord funzione di callback legge un record di errore dall'archivio dati permanente 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 Context membro della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET quando il plug-in PSHED ha chiamato il PshedRegisterPlugin funzione per registrarsi con PSHED.

[in] Flags

Combinazione OR'ed bit-wise di flag che influiscono sull'operazione di lettura. Nessun flag è attualmente definito.

[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 la dimensione del buffer è troppo piccola 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

Un plug-in PSHED ReadErrorRecord funzione di callback 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 esiste 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.

Osservazioni

Un plug-in PSHED che partecipa alla persistenza dei record di errore imposta il Callbacks.WriteErrorRecord, Callbacks.ReadErrorRecord e Callbacks.ClearErrorRecord membri della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET in modo che puntino alla relativa WriteErrorRecord, ReadErrorRecord, e ClearErrorRecord 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 PshedFAErrorRecordPersistence nel membro FunctionalAreaMask della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET.

Il kernel di Windows chiama il 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 il plug-in PSHED ReadErrorRecord funzione di callback per eseguire l'operazione di lettura. Il meccanismo usato per leggere il record di errore dall'archiviazione dati permanente del sistema è specifico della piattaforma.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione ntddk.h (include Ntddk.h)
IRQL IRQL = DISPATCH_LEVEL

Vedere anche

ClearErrorRecord

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET

WriteErrorRecord