Contextos do dispositivo GPIO
Um dispositivo controlador de E/S de uso geral (GPIO) é representado por um objeto de dispositivo de estrutura. O driver do controlador GPIO pode associar um contexto de dispositivo a esse objeto de dispositivo. O driver usa esse contexto de dispositivo para armazenar persistentemente informações sobre o estado do dispositivo controlador GPIO.
Quando a extensão da estrutura GPIO (GpioClx) chama uma função de retorno de chamada de evento implementada pelo driver, GpioClx passa o contexto do dispositivo para essa função como um parâmetro. A função de retorno de chamada examina o contexto do dispositivo para determinar o estado atual do dispositivo. Se a função alterar esse estado, ela atualizará o contexto do dispositivo adequadamente.
GpioClx aloca o armazenamento para um objeto de dispositivo. Se um driver de controlador GPIO tiver mais de um objeto de dispositivo, o contexto do dispositivo para cada um desses objetos terá o mesmo tamanho. Durante a rotina DriverEntry , o driver chama o método GPIO_CLX_RegisterClient para registrar suas funções de retorno de chamada e especificar o tamanho de contexto do dispositivo necessário. Posteriormente, durante a rotina de retorno de chamada EvtDriverDeviceAdd , o driver chama o método GPIO_CLX_ProcessAddDevicePostDeviceCreate para passar o novo objeto de dispositivo para GpioClx e GpioClx aloca o contexto do dispositivo para esse objeto. Depois disso, quando GpioClx chama uma função de retorno de chamada implementada pelo driver, esse contexto de dispositivo é passado para a função como um parâmetro.