PSHED_PI_READ_ERROR_RECORD Rückruffunktion (ntddk.h)

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

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 Kontextelement der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET-Struktur angegeben wurde, als das PSHED-Plug-In die PshedRegisterPlugin-Funktion aufgerufen hat, um sich bei der PSHED zu registrieren.

[in] Flags

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

[in] ErrorRecordId

Der Bezeichner des Fehlerdatensatzes, der aus dem persistenten Datenspeicher des Systems gelesen werden soll. Wenn kein Fehlerdatensatz im persistenten 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 Variable vom Typ ULONGLONG, die den Bezeichner des nächsten Fehlerdatensatzes empfängt, der im persistenten Datenspeicher des Systems gespeichert ist. Wenn keine anderen Fehlerdatensätze im persistenten Datenspeicher des Systems gespeichert sind, sollte der Bezeichner für den Fehlerdatensatz, der gerade gelesen wird, in diesem Parameter zurückgegeben werden.

[in, out] RecordLength

Ein Zeiger auf eine Variable vom Typ ULONG, die die Größe des Puffers in Bytes enthält, auf den der ErrorRecord-Parameter verweist. Wenn die Größe des Puffers groß genug ist, um den zu lesenden Fehlerdatensatz zu enthalten, legt die ReadErrorRecord-Rückruffunktion diese Variable auf die Größe des im Puffer zurückgegebenen Fehlerdatensatzes in Bytes fest. 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 Bytes 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 Im persistenten Datenspeicher des Systems ist kein Fehlerdatensatz vorhanden, der mit dem im ErrorRecordId-Parameter angegebenen Bezeichner übereinstimmt.
STATUS_BUFFER_TOO_SMALL Die Größe des Puffers ist zu klein, um den zu lesenden Fehlerdatensatz zu enthalten.
STATUS_UNSUCCESSFUL Ein Fehler ist aufgetreten.

Hinweise

Ein PSHED-Plug-In, das an der Persistenz des Fehlerdatensatzes beteiligt ist, legt die Callbacks.WriteErrorRecord-, Callbacks.ReadErrorRecord- und Callbacks.ClearErrorRecord-Member der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET-Struktur fest, um auf die Rückruffunktionen WriteErrorRecord, ReadErrorRecord und ClearErrorRecord zu verweisen, wenn das Plug-In die PshedRegisterPlugin-Funktion aufruft, um sich bei PSHED 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 Fehler 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 des PSHED-Plug-Ins 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
Kopfzeile ntddk.h (include Ntddk.h)
IRQL IRQL = DISPATCH_LEVEL

Weitere Informationen

ClearErrorRecord

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET

WriteErrorRecord