Compartilhar via


Contextos do dispositivo GPIO

Um dispositivo controlador de E/S de uso geral (GPIO) é representado por um objeto de dispositivo de framework. 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 callback de evento que é implementada pelo driver, GpioClx passa o contexto do dispositivo como parâmetro para essa função. A função de callback examina o contexto do dispositivo para determinar o estado atual do mesmo. 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 o GpioClx aloca o contexto do dispositivo para o objeto. Depois disso, quando o GpioClx chama uma função callback implementada pelo driver, esse contexto de dispositivo é passado para essa função como um parâmetro.