Share via


GPIO-Based 인터럽트 리소스

GPIO(범용 I/O) 핀에 인터럽트 전송 주변 장치용 드라이버는 추상 Windows 인터럽트 리소스로 GPIO 인터럽트 를 획득합니다. KMDF(커널 모드 드라이버 프레임워크) 드라이버 및 UMDF(사용자 모드 드라이버 프레임워크) 드라이버는 EvtDevicePrepareHardware 이벤트 콜백 함수를 통해 이러한 리소스를 받습니다.

GPIO 기반 인터럽트 리소스를 사용하는 주변 장치 드라이버는 인터럽트 컨트롤러가 아닌 GPIO 핀에 의해 인터럽트를 생성하는지 또는 프로세서 칩의 인터럽트 핀에 의해 생성되는지 여부와 같은 하위 수준 구현 세부 정보를 무시할 수 있습니다.

GPIO 기반 인터럽트는 CmResourceTypeInterrupt 형식의 리소스입니다. 이 인터럽트 구성 매개 변수는 인터럽트 리소스를 설명하는 CM_PARTIAL_RESOURCE_DESCRIPTOR 구조체의 u.Interrupt 멤버에 포함됩니다. ISR(인터럽트 서비스 루틴)을 인터럽트에 연결하기 위해 UMDF 또는 KMDF 드라이버는 인터럽트 리소스에 대한 원시 및 번역된 설명을 인터럽트 생성 메서드에 모두 제공합니다.

주변 디바이스에 대한 KMDF 또는 UMDF 드라이버는 WdfInterruptCreate 메서드를 호출하여 ISR을 디바이스의 인터럽트에 연결합니다. 이 메서드의 입력 매개 변수 중 하나는 인터럽트 구성 정보를 포함하는 WDF_INTERRUPT_CONFIG 구조체에 대한 포인터입니다.

주변 장치 드라이버가 둘 이상의 GPIO 인터럽트 리소스를 사용하는 경우 이 드라이버는 이러한 리소스가 EvtDevicePrepareHardware 함수 또는 OnPrepareHardware 메서드에 입력 매개 변수로 제공되는 원시 및 번역된 리소스 목록에 표시되는 순서를 알고 있어야 합니다. 이러한 목록의 리소스는 드라이버가 예상한 순서와 일치해야 하는 플랫폼 펌웨어에 설명된 순서로 표시됩니다.