Freigeben über


GPIO-Gerätekontexte

Ein allgemeines I/O-Controllergerät (GPIO) wird durch ein Framework-Geräteobjekt dargestellt. Der GPIO-Controllertreiber kann einen Gerätekontext diesem Geräteobjekt zuordnen. Der Treiber verwendet diesen Gerätekontext, um Informationen zum Zustand des GPIO-Controllergeräts dauerhaft zu speichern.

Wenn die GPIO-Frameworkerweiterung (GpioClx) eine Ereignisrückruffunktion aufruft, die vom Treiber implementiert wird, übergibt GpioClx den Gerätekontext als Parameter an diese Funktion. Die Rückruffunktion untersucht den Gerätekontext, um den aktuellen Zustand des Geräts zu ermitteln. Wenn die Funktion diesen Zustand ändert, aktualisiert sie den Gerätekontext entsprechend.

GpioClx weist den Speicher für ein Geräteobjekt zu. Wenn ein GPIO-Controllertreiber mehrere Geräteobjekte aufweist, ist der Gerätekontext für jedes dieser Objekte dieselbe Größe. Während der DriverEntry-Routine ruft der Treiber die GPIO_CLX_RegisterClient-Methode auf, um seine Rückruffunktionen zu registrieren und die benötigten Gerätekontextgröße anzugeben. Später ruft der Treiber während der EvtDriverDeviceAdd-Rückrufroutine die GPIO_CLX_ProcessAddDevicePostDeviceCreate Methode auf, um das neue Geräteobjekt an GpioClx zu übergeben, und GpioClx weist den Gerätekontext für dieses Objekt zu. Wenn GpioClx anschließend eine vom Treiber implementierte Rückruffunktion aufruft, wird dieser Gerätekontext als Parameter an die Funktion übergeben.