Contextos de dispositivo GPIO
Un dispositivo de controlador de E/S de uso general (GPIO) se representa mediante un objeto de dispositivo de marco. El controlador de controlador GPIO puede asociar un contexto de dispositivo con este objeto de dispositivo. El controlador usa este contexto de dispositivo para almacenar de forma persistente información sobre el estado del dispositivo del controlador GPIO.
Cuando la extensión de marco gpIO (GpioClx) llama a una función de devolución de llamada de eventos implementada por el controlador, GpioClx pasa el contexto del dispositivo a esta función como parámetro. La función de devolución de llamada examina el contexto del dispositivo para determinar el estado actual del dispositivo. Si la función modifica este estado, actualiza el contexto del dispositivo en consecuencia.
GpioClx asigna el almacenamiento de un objeto de dispositivo. Si un controlador de controlador GPIO tiene más de un objeto de dispositivo, el contexto del dispositivo para cada uno de estos objetos tiene el mismo tamaño. Durante la rutina DriverEntry , el controlador llama al método GPIO_CLX_RegisterClient para registrar sus funciones de devolución de llamada y especificar el tamaño de contexto del dispositivo que requiere. Más adelante, durante la rutina de devolución de llamada EvtDriverDeviceAdd , el controlador llama al método GPIO_CLX_ProcessAddDevicePostDeviceCreate para pasar el nuevo objeto de dispositivo a GpioClx y GpioClx asigna el contexto del dispositivo para este objeto. A partir de entonces, cuando GpioClx llama a una función de devolución de llamada implementada por el controlador, este contexto de dispositivo se pasa a la función como parámetro.