다음을 통해 공유


GPIO 디바이스 컨텍스트

GPIO(범용 I/O) 컨트롤러 디바이스는 프레임워크 디바이스 개체로 표시됩니다. GPIO 컨트롤러 드라이버는 디바이스 컨텍스트를 이 디바이스 개체와 연결할 수 있습니다. 드라이버는 이 디바이스 컨텍스트를 사용하여 GPIO 컨트롤러 디바이스의 상태에 대한 정보를 영구적으로 저장합니다.

GPIO 프레임워크 확장(GpioClx)이 드라이버에 의해 구현된 이벤트 콜백 함수를 호출하면 GpioClx는 디바이스 컨텍스트를 이 함수에 매개 변수로 전달합니다. 콜백 함수는 디바이스 컨텍스트를 검사하여 디바이스의 현재 상태를 확인합니다. 함수가 이 상태를 변경하면 그에 따라 디바이스 컨텍스트가 업데이트됩니다.

GpioClx는 디바이스 개체에 대한 스토리지를 할당합니다. GPIO 컨트롤러 드라이버에 둘 이상의 디바이스 개체가 있는 경우 이러한 각 개체에 대한 디바이스 컨텍스트는 동일한 크기입니다. DriverEntry 루틴 중에 드라이버는 GPIO_CLX_RegisterClient 메서드를 호출하여 콜백 함수를 등록하고 필요한 디바이스 컨텍스트 크기를 지정합니다. 나중에 EvtDriverDeviceAdd 콜백 루틴 중에 드라이버는 GPIO_CLX_ProcessAddDevicePostDeviceCreate 메서드를 호출하여 새 디바이스 개체를 GpioClx에 전달하고 GpioClx는 이 개체에 대한 디바이스 컨텍스트를 할당합니다. 그 후 GpioClx가 드라이버 구현 콜백 함수를 호출하면 이 디바이스 컨텍스트가 매개 변수로 함수에 전달됩니다.