Freigeben über


PSHED_PI_GET_ALL_ERROR_SOURCES Rückruffunktion (ntddk.h)

Die GetAllErrorSources-Rückruffunktion eines PSHED-Plug-Ins gibt eine Liste von Fehlerquellendeskriptorstrukturen zurück, die alle Fehlerquellen darstellt, die von der Hardwareplattform implementiert werden.

Syntax

PSHED_PI_GET_ALL_ERROR_SOURCES PshedPiGetAllErrorSources;

NTSTATUS PshedPiGetAllErrorSources(
  [in, out, optional] PVOID PluginContext,
  [in, out]           PULONG Count,
  [in, out]           PWHEA_ERROR_SOURCE_DESCRIPTOR *ErrorSrcs,
  [in, out]           PULONG Length
)
{...}

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, out] Count

Ein Zeiger auf eine ULONG-typisierte Variable. Wenn die GetAllErrorSources-Rückruffunktion aufgerufen wird, enthält diese Variable die Anzahl der Fehlerquellendeskriptorstrukturen, die im Puffer enthalten sind, auf den der ErrorSources-Parameter verweist, wie vom PSHED bereitgestellt. Wenn die GetAllErrorSources-Rückruffunktion die Anzahl der Fehlerquellendeskriptorstrukturen ändert, die sich im Puffer befinden, muss diese Variable auf die neue Anzahl von Fehlerquellendeskriptorstrukturen festgelegt werden, bevor sie zurückgegeben wird.

[in, out] ErrorSrcs

Ein Zeiger auf einen Puffer, der ein Array von WHEA_ERROR_SOURCE_DESCRIPTOR-Strukturen empfängt, das alle fehlerquellen darstellt, die von der Hardwareplattform implementiert werden. Wenn die GetAllErrorSources-Rückruffunktion aufgerufen wird, enthält dieser Puffer eine anfängliche Liste der Fehlerquellendeskriptorstrukturen, die vom PSHED bereitgestellt wird. Das PSHED-Plug-In kann Änderungen an der Liste vornehmen, sodass es alle Fehlerquellen genau darstellt, die von der Hardwareplattform implementiert werden.

[in, out] Length

Ein Zeiger auf eine Variable vom Typ ULONG, die die Größe des Puffers in Bytes enthält, auf den der ErrorSources-Parameter verweist. Wenn die Größe zu klein ist, um die geänderte Liste der Fehlerquellendeskriptorstrukturen zu enthalten, legt die GetAllErrorSources-Rückruffunktion diese Variable auf die Puffergröße fest, die erforderlich ist, um die Liste zu enthalten, und gibt STATUS_BUFFER_TOO_SMALL zurück.

Rückgabewert

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

Rückgabecode Beschreibung
STATUS_SUCCESS Die geänderte Liste der Fehlerquellendeskriptorstrukturen wurde erfolgreich im Puffer zurückgegeben, auf den der ErrorSources-Parameter verweist.
STATUS_BUFFER_TOO_SMALL Die Größe des Puffers, auf den der ErrorSources-Parameter verweist, ist zu klein, um die Liste der Fehlerquellendeskriptorstrukturen zu enthalten.
STATUS_UNSUCCESSFUL Ein Fehler ist aufgetreten.

Hinweise

Ein PSHED-Plug-In, das an der Fehlerquellenermittlung beteiligt ist, legt fest, dass der Callbacks.GetAllErrorSources-Member der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET-Struktur auf seine GetAllErrorSources-Rückruffunktion verweist, wenn das Plug-In die PshedRegisterPlugin-Funktion aufruft, um sich bei PSHED zu registrieren. Das PSHED-Plug-In muss auch das PshedFADiscovery-Flag im FunctionalAreaMask-Element der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET-Struktur festlegen.

Wenn das Betriebssystem gestartet wird, ruft der Windows-Kernel PSHED auf, um die Liste der Fehlerquellendeskriptorstrukturen abzurufen, die alle fehlerquellen darstellen, die von der Hardwareplattform implementiert werden. Der PSHED erstellt eine erste Liste der Fehlerquellendeskriptorstrukturen. Wenn ein PSHED-Plug-In für die Teilnahme an der Fehlerquellenermittlung registriert ist, ruft PSHED die Rückruffunktion GetAllErrorSources des PSHED-Plug-Ins auf. Das PSHED-Plug-In kann eine beliebige Kombination der folgenden Änderungen an der Liste der Fehlerquellendeskriptorstrukturen vornehmen, sodass es alle Fehlerquellen genau darstellt, die von der Hardwareplattform implementiert werden.

  • Ändern Sie den Inhalt einer oder mehrerer der Fehlerquellendeskriptorstrukturen.

  • Entfernen Sie mindestens eine der Fehlerquellendeskriptorstrukturen aus der Liste.

  • Fügen Sie der Liste eine oder mehrere neue Fehlerquellendeskriptorstrukturen hinzu.

Wenn das PSHED-Plug-In der Liste eine oder mehrere neue Fehlerquellendeskriptorstrukturen hinzufügen muss und die Größe des Puffers zu klein ist, um die zusätzlichen Strukturen einzuschließen, muss die GetAllErrorSources-Rückruffunktion des PSHED-Plug-Ins die Variable festlegen, auf die der Parameter Length zeigt, auf die Puffergröße festgelegt wird, die erforderlich ist, um die Liste mit den zusätzlichen Strukturen zu enthalten und STATUS_BUFFER_TOO_SMALL zurückzugeben. In diesem Fall weist der PSHED einen größeren Puffer zu, kopiert die Liste der Fehlerquellendeskriptorstrukturen in den neuen Puffer und ruft die Rückruffunktion GetAllErrorSources des PSHED-Plug-Ins ein zweites Mal auf.

Ein PSHED-Plug-In, das an der Fehlerquellenermittlung beteiligt ist, kann auch eine optionale GetErrorSourceInfo-Rückruffunktion implementieren. In diesem Fall legt das PSHED-Plug-In auch den Callbacks.GetErrorSourceInfo-Member der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET-Struktur so fest, dass er auf seine GetErrorSourceInfo-Rückruffunktion verweist, wenn es die PshedRegisterPlugin-Funktion aufruft, um sich bei der PSHED zu registrieren.

Anforderungen

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

Weitere Informationen

GetErrorSourceInfo

PshedRegisterPlugin

WHEA_ERROR_SOURCE_DESCRIPTOR

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET