Freigeben über


PSHED_PI_READ_ERROR_RECORD Rückruffunktion (ntddk.h)

Die ReadErrorRecord Rückruffunktion eines PSHED-Plug-Ins liest einen Fehlerdatensatz aus dem persistenten Datenspeicher des Systems vor.

Syntax

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
)
{...}

Parameter

[in, out, optional] PluginContext

Ein Zeiger auf den Kontextbereich, der im Context Member der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET Struktur angegeben wurde, als das PSHED-Plug-In die PshedRegisterPlugin--Funktion aufgerufen hat, um sich bei der PSHED-Funktion zu registrieren.

[in] Flags

Eine bitweise OR'ed-Kombination von Flags, die sich auf den Lesevorgang auswirken. Zurzeit sind keine Flags definiert.

[in] ErrorRecordId

Der Bezeichner des Fehlerdatensatzes, der aus dem persistenten Datenspeicher des Systems gelesen werden soll. Wenn kein Fehlerdatensatz im beständigen Datenspeicher des Systems gespeichert ist, der diesem Bezeichner entspricht, muss die ReadErrorRecord- Rückruffunktion STATUS_OBJECT_NOT_FOUND zurückgeben.

[out] NextErrorRecordId

Ein Zeiger auf eine ULONGLONG-Typ-Variable, die den Bezeichner des nächsten Fehlerdatensatzes empfängt, der im beständigen Datenspeicher des Systems gespeichert ist. Wenn keine anderen Fehlerdatensätze im permanenten Datenspeicher des Systems gespeichert sind, sollte der Bezeichner für den aktuell gelesenen Fehlerdatensatz in diesem Parameter zurückgegeben werden.

[in, out] RecordLength

Ein Zeiger auf eine ULONG-Typvariable, die die Größe des Puffers in Byte enthält, auf den der ErrorRecord-Parameter verweist. Wenn die Größe des Puffers groß genug ist, um den fehlerdatensatz zu enthalten, der gelesen wird, legt die ReadErrorRecord Rückruffunktion diese Variable auf die Größe des Fehlerdatensatzes in Bytes fest, der im Puffer zurückgegeben wird. Wenn die Größe des Puffers jedoch zu klein ist, um den zu lesenden Fehlerdatensatz zu enthalten, legt die ReadErrorRecord Rückruffunktion diese Variable auf die Größe in Byte fest, die erforderlich ist, um den Fehlerdatensatz zu enthalten. In diesem Fall muss die ReadErrorRecord- Rückruffunktion STATUS_BUFFER_TOO_SMALL zurückgeben.

[out] ErrorRecord

Ein Zeiger auf einen Puffer, der den Fehlerdatensatz empfängt, der aus dem persistenten Datenspeicher des Systems gelesen wird.

Rückgabewert

Die ReadErrorRecord Rückruffunktion eines PSHED-Plug-Ins gibt einen der folgenden NTSTATUS-Codes zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS Der Fehlerdatensatz wurde erfolgreich aus dem persistenten Datenspeicher des Systems gelesen.
STATUS_OBJECT_NOT_FOUND Es gibt keinen Fehlerdatensatz im beständigen Datenspeicher des Systems, der dem im ErrorRecordId Parameter angegebenen Bezeichner entspricht.
STATUS_BUFFER_TOO_SMALL Die Größe des Puffers ist zu klein, um den fehlerdatensatz zu enthalten, der gelesen wird.
STATUS_UNSUCCESSFUL Fehler.

Bemerkungen

Ein PSHED-Plug-In, das an der Persistenz des Fehlerdatensatzes teilnimmt, legt die Callbacks.WriteErrorRecord, Callbacks.ReadErrorRecord und Callbacks.ClearErrorRecord Member der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET Struktur fest, um auf die WriteErrorRecord, ReadErrorRecord zu verweisen, und ClearErrorRecord Rückruffunktionen, wenn das Plug-In die PshedRegisterPlugin-funktion aufruft, um sich bei der PSHED-Funktion zu registrieren. Das PSHED-Plug-In muss auch das PshedFAErrorRecordPersistence Flag im FunctionalAreaMask Member der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET Struktur festlegen.

Der Windows-Kernel ruft den PSHED auf, um einen Fehlerdatensatz aus dem persistenten Datenspeicher des Systems zu lesen, nachdem das System nach einem schwerwiegenden oder anderweitig nicht behebbaren Fehlerzustand neu gestartet wurde. Wenn ein PSHED-Plug-In registriert ist, um an der Persistenz des Fehlerdatensatzes teilzunehmen, ruft das PSHED-Plug-In die ReadErrorRecord Rückruffunktion auf, um den Lesevorgang auszuführen. Der Mechanismus, der zum Lesen des Fehlerdatensatzes aus dem persistenten Datenspeicher des Systems verwendet wird, ist plattformspezifisch.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- ntddk.h (include Ntddk.h)
IRQL- IRQL = DISPATCH_LEVEL

Siehe auch

ClearErrorRecord-

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET

WriteErrorRecord-