Freigeben über


GPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT Rückruffunktion (gpioclx.h)

Die CLIENT_RestoreBankHardwareContext Ereignisrückruffunktion stellt den Hardwarekontext einer Bank von GPIO-Pins (General Purpose E/O) wieder her.

Syntax

GPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT GpioClientRestoreBankHardwareContext;

void GpioClientRestoreBankHardwareContext(
  [in] PVOID Context,
  [in] PGPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS Parameters
)
{...}

Parameter

[in] Context

Ein Zeiger auf den Gerätekontext des GPIO-Controllertreibers.

[in] Parameters

Ein Zeiger auf eine GPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS Struktur, die die Bank der wiederherzustellenden GPIO-Pins beschreibt.

Rückgabewert

Keine

Bemerkungen

Die CLIENT_RestoreBankHardwareContext-Funktion gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Andernfalls wird ein entsprechender Fehler status Code zurückgegeben.

Wenn eine Bank mit GPIO-Pins die Energieverwaltung auf Komponentenebene unterstützt, kann GpioClx die Bank in einen Fx-Zustand mit niedriger Leistung umschalten, wenn sich die Bank im Leerlauf befindet. Wenn die GPIO-Controllerbank ihren Hardwarekontext im Fx-Zustand verliert, muss der GPIO-Controllertreiber diesen Kontext vor dem Übergang von F0 zu Fx speichern und später den Kontext nach dem Übergang von Fx zu F0 wiederherstellen. Derzeit ist F1 der einzige Energiesparzustand, der für GPIO-Controller definiert ist, die GpioClx verwenden.

GpioClx ruft die CLIENT_RestoreBankHardwareContext-Funktion auf, um den zuvor gespeicherten Hardwarekontext der Bank wiederherzustellen. Der Hardwarekontext wurde zuvor von der CLIENT_SaveBankHardwareContext Ereignisrückruffunktion gespeichert.

Bei einigen GPIO-Controllergeräten können ausgewählte Pinbänke unabhängig von anderen Banken im selben Gerät ein- und ausgeschaltet werden. So kann Strom gespart werden, indem eine Bank ausgeschaltet wird, die sich im Leerlauf befindet.

Um die CLIENT_RestoreBankHardwareContext Rückruffunktion Ihres Treibers zu registrieren, rufen Sie die GPIO_CLX_RegisterClient-Methode auf. Diese Methode akzeptiert als Eingabeparameter einen Zeiger auf eine GPIO_CLIENT_REGISTRATION_PACKET-Struktur , die einen CLIENT_RestoreBankHardwareContext Funktionszeiger enthält.

GpioClx ruft die CLIENT_RestoreBankHardwareContext Rückruffunktion entweder bei PASSIVE_LEVEL oder DIRQL auf, abhängig von den Geräteinformationen, die die CLIENT_QueryControllerBasicInformation Rückruffunktion an GpioClx bereitstellt. Die CLIENT_QueryControllerBasicInformation-Funktion stellt Geräteinformationen in Form einer CLIENT_CONTROLLER_BASIC_INFORMATION-Struktur bereit. Wenn das MemoryMappedController-Flagbit im Flags-Member dieser Struktur festgelegt ist, ruft GpioClx die CLIENT_RestoreBankHardwareContext-Funktion bei DIRQL auf, d. h. die IRQL, unter der der ISR in GpioClx ausgeführt wird. Andernfalls wird diese Funktion bei PASSIVE_LEVEL aufgerufen. Weitere Informationen zu diesem Flagbit finden Sie unter Optionale und erforderliche GPIO-Rückruffunktionen.

Beispiele

Um eine CLIENT_RestoreBankHardwareContext Rückruffunktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten Rückruffunktion identifiziert. Windows bietet eine Reihe von Rückruffunktionstypen für Treiber. Das Deklarieren einer Funktion mithilfe der Rückruffunktionstypen hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine CLIENT_RestoreBankHardwareContext Rückruffunktion namens MyEvtGpioRestoreBankHardwareContextzu definieren, verwenden Sie den GPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT-Funktionstyp, wie in diesem Codebeispiel gezeigt:

GPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT MyEvtGpioRestoreBankHardwareContext;</pre>

Implementieren Sie dann Ihre Rückruffunktion wie folgt:

_Use_decl_annotations_
NTSTATUS
  MyEvtGpioRestoreBankHardwareContext(
    PVOID Context,
    PGPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS Parameters
    )
{ ... }

Der GPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT Funktionstyp wird in der Headerdatei Gpioclx.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzu. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den GPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT Funktionstyp in der Headerdatei angewendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für KMDF-Treiber. Weitere Informationen zu Use_decl_annotations finden Sie unter Verhalten von Funktionen mit Anmerkungen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Wird ab Windows 8 unterstützt.
Zielplattform Desktop
Kopfzeile gpioclx.h
IRQL Siehe Hinweise.

Weitere Informationen

CLIENT_CONTROLLER_BASIC_INFORMATION

CLIENT_QueryControllerBasicInformation

CLIENT_SaveBankHardwareContext

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient

GPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS