요청 처리기

드라이버가 I/O 큐에 대한 순차적 또는 병렬 디스패치 메서드를 지정한 경우 프레임워크는 큐의 요청 중 하나를 드라이버에 전달할 준비가 될 때마다 드라이버 제공 콜백 함수를 호출합니다.

각 I/O 큐에 대해 드라이버는 요청 처리기라고 하는 다음 콜백 함수 중 하나 이상을 제공할 수 있습니다.

EvtIoRead
프레임워크는 큐에서 읽기 요청을 사용할 수 있을 때 I/O 큐의 EvtIoRead 콜백 함수를 호출합니다.

EvtIoWrite
이 프레임워크는 큐에서 쓰기 요청을 사용할 수 있을 때 I/O 큐의 EvtIoWrite 콜백 함수를 호출합니다.

EvtIoDeviceControl
프레임워크는 큐에서 디바이스 I/O 제어 요청을 사용할 수 있을 때 I/O 큐의 EvtIoDeviceControl 콜백 함수를 호출합니다.

EvtIoInternalDeviceControl
내부 디바이스 I/O 제어 요청을 큐에서 사용할 수 있는 경우 프레임워크는 I/O 큐의 EvtIoInternalDeviceControl 콜백 함수를 호출합니다.

EvtIoDefault
프레임워크는 드라이버가 연결된 요청 유형별 콜백 함수를 제공하지 않은 경우 요청을 사용할 수 있을 때 I/O 큐의 EvtIoDefault 콜백 함수를 호출합니다.

드라이버는 WdfIoQueueCreate 를 호출하여 디바이스에 대한 I/O 큐를 만들 때 콜백 함수를 등록합니다.

이러한 각 콜백 함수는 프레임워크가 드라이버에 제공하는 I/O 요청에 대한 핸들과 요청을 보유한 I/O 큐에 대한 핸들이라는 두 개의 입력 인수를 받습니다. 콜백 함수는 WdfIoQueueGetDevice를 호출하여 대상 디바이스를 확인할 수 있습니다.

프레임워크는 임의의 스레드 컨텍스트에서 드라이버의 요청 처리기를 호출합니다. 드라이버는 임의의 스레드 컨텍스트에서 실행되는 동안 오랜 시간 동안 기다리지 않아야 합니다. 경우에 따라 드라이버가 커널 디스패처 개체를 동기화 메커니즘으로 사용할 수 있습니다. 드라이버가 디스패처 개체를 대기할 수 있는 시기 및 할 수 없는 경우 수행할 작업에 대한 자세한 내용은 커널 디스패처 개체 소개를 참조하세요.