Freigeben über


GPIO_CLIENT_START_CONTROLLER Rückruffunktion (gpioclx.h)

Die CLIENT_StartController Ereignisrückruffunktion führt Vorgänge aus, die erforderlich sind, wenn das GPIO-Controllergerät (General Purpose E/O) in den D0-Energiezustand wechselt.

Syntax

GPIO_CLIENT_START_CONTROLLER GpioClientStartController;

NTSTATUS GpioClientStartController(
  [in] PVOID Context,
  [in] BOOLEAN RestoreContext,
  [in] WDF_POWER_DEVICE_STATE PreviousPowerState
)
{...}

Parameter

[in] Context

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

[in] RestoreContext

Gibt an, ob der Clienttreiber den GPIO-Controller in einem zuvor gespeicherten Hardwarekontext wiederherstellen soll. Bei TRUE sollte der Hardwarekontext wiederhergestellt werden. Bei FALSE sollte der Hardwarekontext nicht wiederhergestellt werden. Weitere Informationen finden Sie in den Hinweisen.

[in] PreviousPowerState

Der vorherige Gerätestromzustand. Dieser Parameter ist ein WDF_POWER_DEVICE_STATE Enumerationswert, der den Zustand mit geringer Leistung angibt, von dem das Gerät in den D0-Energiezustand gelangt ist. Der GPIO-Controllertreiber kann diese Informationen verwenden, um zu bestimmen, wie das Controllergerät so konfiguriert werden soll, dass es einsatzbereit ist.

Rückgabewert

Die CLIENT_StartController-Funktion gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Andernfalls wird ein entsprechender Fehlercode zurückgegeben.

Hinweise

Diese Rückruffunktion wird vom GPIO-Controllertreiber implementiert. Die GPIO-Frameworkerweiterung (GpioClx) ruft diese Funktion auf, um das GPIO-Controllergerät beim Systemstart in einen bekannten Anfangszustand zu versetzen oder wenn das Gerät von einem Zustand mit geringer Leistung in einen Betriebszustand wechselt. Diese Rückruffunktion muss alle Vorgänge ausführen, die erforderlich sind, nachdem das Gerät aus einem Energiesparzustand reaktiviert wurde, z. B. die Wiederherstellung aller Informationen, die der Treiber benötigt, nachdem das Gerät in den D0-Netzzustand gelangt ist.

In der Regel legt eine CLIENT_StartController Rückruffunktion alle GPIO-Pins auf ihren Standardzustand fest.

Um die CLIENT_StartController 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_StartController Funktionszeiger enthält.

Obwohl die CLIENT_StartController Rückruffunktion unter IRQL = PASSIVE_LEVEL aufgerufen wird, sollten Sie diese Funktion nicht auslagerungsfähig machen. Der CLIENT_StartController Rückrufs befindet sich im kritischen Zeitpfad für die Wiederherstellung der Stromversorgung der Geräte auf der Hardwareplattform und sollte aus Leistungsgründen nicht durch Seitenfehler verzögert werden.

Beispiele

Um eine CLIENT_StartController Rückruffunktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten Rückruffunktion angibt. 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_StartController Rückruffunktion namens MyEvtGpioStartControllerzu definieren, verwenden Sie den GPIO_CLIENT_START_CONTROLLER Funktionstyp, wie in diesem Codebeispiel gezeigt:

GPIO_CLIENT_START_CONTROLLER MyEvtGpioStartController;

Implementieren Sie dann Ihre Rückruffunktion wie folgt:

_Use_decl_annotations_
VOID
  MyEvtGpioStartController(
    PVOID Context,
    BOOLEAN RestoreContext,
    WDF_POWER_DEVICE_STATE PreviousPowerState
    )
{ ... }

Der GPIO_CLIENT_START_CONTROLLER Funktionstyp ist 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_START_CONTROLLER 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 Wird bei PASSIVE_LEVEL aufgerufen (siehe Hinweise).

Weitere Informationen

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient