Contextes d’appareil GPIO
Un périphérique de contrôleur d’E/S à usage général (GPIO) est représenté par un objet d’appareil framework. Le pilote de contrôleur GPIO peut associer un contexte d’appareil à cet objet d’appareil. Le pilote utilise ce contexte d’appareil pour stocker de manière permanente des informations sur l’état du périphérique de contrôleur GPIO.
Lorsque l’extension d’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 pour spécifier la taille de contexte d’appareil dont il a besoin. 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 d’appareil est passé à la fonction en tant que paramètre.