Partager via


Contextes d’appareil GPIO

Un appareil de contrôleur d’E/S à usage général (GPIO) est représenté par un objet de périphérique de cadre. Le pilote de contrôleur GPIO peut associer un contexte d’appareil à cet objet d’appareil. Le pilote utilise ce contexte de périphérique pour stocker de façon permanente des informations sur l’état du périphérique du contrôleur GPIO.

Lorsque l’extension de l’infrastructure GPIO (GpioClx) appelle une fonction de rappel d’événement implémentée par le pilote, GpioClx transmet le contexte de l’appareil à cette fonction en tant que paramètre. La fonction de rappel examine le contexte de l’appareil pour déterminer l’état actuel de l’appareil. Si la fonction modifie cet état, elle met à jour le contexte de l’appareil en conséquence.

GpioClx alloue le stockage pour un objet d’appareil. Si un pilote de contrôleur GPIO a plusieurs objets d’appareil, le contexte de l’appareil pour chacun de ces objets est de la même taille. Pendant la routine DriverEntry , le pilote appelle la méthode GPIO_CLX_RegisterClient pour inscrire ses fonctions de rappel et spécifier la taille de contexte de l’appareil requise. Plus tard, pendant la routine de rappel EvtDriverDeviceAdd , le pilote appelle la méthode GPIO_CLX_ProcessAddDevicePostDeviceCreate pour passer le nouvel objet d’appareil à GpioClx et GpioClx alloue le contexte de l’appareil pour cet objet. Par la suite, lorsque GpioClx appelle une fonction de rappel implémentée par le pilote, ce contexte de périphérique est passé à la fonction en tant que paramètre.