PSHED_PI_GET_ALL_ERROR_SOURCES Rückruffunktion (ntddk.h)
Die GetAllErrorSources Rückruffunktion eines PSHED-Plug-Ins gibt eine Liste der Fehlerquellendeskriptorstrukturen zurück, die alle Fehlerquellen darstellen, 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 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, out] Count
Ein Zeiger auf eine ULONG-Typvariable. 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 angegeben. Wenn die GetAllErrorSources Rückruffunktion die Anzahl der Fehlerquellendeskriptorstrukturen ändert, die sich im Puffer befinden, muss diese Variable auf die neue Anzahl der 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, die alle Fehlerquellen darstellen, die von der Hardwareplattform implementiert werden. Wenn die GetAllErrorSources- Rückruffunktion aufgerufen wird, enthält dieser Puffer eine anfängliche Liste der Fehlerquellendeskriptorstrukturen, die von der PSHED bereitgestellt werden. Das PSHED-Plug-In kann Änderungen an der Liste vornehmen, sodass es alle Fehlerquellen, die von der Hardwareplattform implementiert werden, korrekt darstellt.
[in, out] Length
Ein Zeiger auf eine ULONG-Typvariable, die die Größe des Puffers in Byte 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 | Fehler. |
Bemerkungen
Ein PSHED-Plug-In, das an der Fehlerquellenermittlung teilnimmt, legt die Callbacks.GetAllErrorSources Mitglied der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET-Struktur fest, um auf seine GetAllErrorSources- Rückruffunktion zu zeigen, wenn das Plug-In die PshedRegisterPlugin-Funktion aufruft, um sich bei der PSHED-Funktion zu registrieren. Das PSHED-Plug-In muss auch das PshedFADiscovery- Flag im FunctionalAreaMask Member 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. Das PSHED erstellt eine anfängliche Liste der Fehlerquellendeskriptorstrukturen. Wenn ein PSHED-Plug-In registriert ist, um an der Fehlerquellenermittlung teilzunehmen, ruft PSHED das GetAllErrorSources Rückruffunktion des PSHED-Plug-Ins auf. Das PSHED-Plug-In kann eine beliebige Kombination der folgenden Änderungen an der Liste der Fehlerquellendeskriptorstrukturen vornehmen, sodass sie alle Fehlerquellen, die von der Hardwareplattform implementiert werden, genau darstellt.
Ändern Sie den Inhalt einer oder mehrerer Fehlerquellendeskriptorstrukturen.
Entfernen Sie eine oder mehrere der Fehlerquellendeskriptorstrukturen aus der Liste.
Fügen Sie der Liste eine oder mehrere neue Fehlerquellendeskriptorstrukturen hinzu.
Wenn das PSHED-Plug-In eine oder mehrere neue Fehlerquellendeskriptorstrukturen zur Liste hinzufügen muss und die Größe des Puffers zu klein ist, um die zusätzlichen Strukturen einzuschließen, muss das PSHED-Plug-In GetAllErrorSources- Rückruffunktion die Variable festlegen, auf die vom Parameter Length Parameter auf die Puffergröße verwiesen 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 GetAllErrorSources Rückruffunktion des PSHED-Plug-Ins ein zweites Mal auf.
Ein PSHED-Plug-In, das an der Fehlerquellenermittlung teilnimmt, kann auch eine optionale GetErrorSourceInfo Rückruffunktion implementieren. In diesem Fall legt das PSHED-Plug-In auch die Callbacks.GetErrorSourceInfo Mitglied der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET-Struktur fest, um auf die GetErrorSourceInfo Rückruffunktion zu verweisen, wenn sie die PshedRegisterPlugin-Funktion aufruft, um sich bei der PSHED-Funktion zu registrieren.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | ntddk.h (include Ntddk.h) |
IRQL- | IRQL = DISPATCH_LEVEL |