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 |