디스패치 루틴 작성

IRP(I/O 요청 패킷) 처리는 드라이버가 IRP 주 함수 코드(IRP_MJ_*XXX)를 처리하기 위해 등록하는 디스패치 루틴에서 시작됩니다. 드라이버의 DriverEntry 루틴은 드라이버의 DRIVER_OBJECT* 구조 내에서 디스패치 테이블의 디스패치 루틴에 대한 진입점을 내보냅니다.

드라이버는 처리하는 각 주요 I/O 함수 코드에 대해 별도의 디스패치 루틴을 제공할 수 있습니다. 또는 여러 I/O 함수 코드를 처리하기 위해 디스패치 루틴을 작성할 수 있습니다.

이 섹션에서는 다음 항목을 다룹니다.

디스패치 루틴 기능

필수 디스패치 루틴

선택적 디스패치 루틴

디스패치 루틴 및 IRQL

드라이버의 I/O 스택 위치를 확인해야 하는 경우

DispatchCreate, DispatchClose 및 DispatchCreateClose 루틴

DispatchCleanup 루틴

DispatchRead, DispatchWrite 및 DispatchReadWrite 루틴

DispatchDeviceControl 및 DispatchInternalDeviceControl 루틴

DispatchPnP 루틴

DispatchPower 루틴

DispatchQueryInformation 루틴

DispatchSetInformation 루틴

DispatchFlushBuffers 루틴

DispatchShutdown 루틴

DispatchSystemControl 루틴