다음을 통해 공유


필수 디스패치 루틴

대부분의 드라이버는 다음 디스패치 루틴을 처리해야 합니다.

  • DispatchPnP

    IRP_MJ_PNP PnP 디바이스 인식, 하드웨어 구성 또는 리소스 할당과 관련된 요청을 나타냅니다. 이러한 요청은 일반적으로 PnP 관리자 또는 밀접하게 결합된 상위 수준 드라이버에서 디바이스 드라이버로 전송됩니다.

  • DispatchPower

    IRP_MJ_POWER 디바이스 또는 시스템의 전원 상태와 관련된 요청을 나타냅니다. 이러한 요청은 전원 관리자 또는 밀접하게 결합된 상위 수준 드라이버에 의해 디바이스 드라이버로 전송됩니다.

  • DispatchCreate

    IRP_MJ_CREATE 애플리케이션 또는 하위 시스템 관련 드라이버를 대신하여 사용자 모드로 보호된 하위 시스템이 대상 디바이스 개체와 연결된 파일 개체에 대한 핸들을 요청했거나 상위 수준 드라이버가 해당 디바이스 개체를 대상 디바이스 개체에 연결하거나 연결하고 있음을 나타냅니다.

  • DispatchClose

    IRP_MJ_CLOSE 대상 디바이스 개체와 연결된 파일 개체의 마지막 핸들이 닫혀 해제되었음을 나타냅니다. 모든 I/O 요청이 완료되거나 취소되었으므로 파일 개체 포인터에 대한 미해결 참조가 없습니다.

  • DispatchRead

    IRP_MJ_READ 기본 물리적 디바이스에서 시스템으로 데이터를 전송하는 I/O 요청을 나타냅니다.

  • DispatchWrite

    IRP_MJ_WRITE 시스템에서 기본 물리적 디바이스로 데이터를 전송하는 I/O 요청을 나타냅니다.

  • DispatchDeviceControl

    IRP_MJ_DEVICE_CONTROL 디바이스 유형별 작업을 지정하는 시스템 정의 디바이스 유형별 I/O 제어 코드가 포함된 요청을 나타냅니다. 상위 수준 드라이버는 이러한 IRP를 기본 디바이스 드라이버에 전달하며, 일반적으로 디바이스에 액세스하여 요청을 처리합니다.

  • DispatchInternalDeviceControl

    IRP_MJ_INTERNAL_DEVICE_CONTROL 디바이스 드라이버로 전송된 요청을 나타내며, 대부분의 경우 디바이스 유형별 또는 디바이스별 작업을 요청하는 비공개로 정의된 드라이버별 및 디바이스 유형별 또는 디바이스별 I/O 제어 코드와 밀접하게 결합된 상위 수준 드라이버에서 전송됩니다.

    특정 SCSI 드라이버, 키보드 또는 마우스 디바이스 드라이버 및 시스템 제공 드라이버와 상호 운용되는 병렬 드라이버를 포함하여 시스템 정의 내부 디바이스 I/O 제어 요청을 처리하려면 특정 종류의 드라이버만 필요합니다.

  • DispatchSystemControl

    IRP_MJ_SYSTEM_CONTROL 드라이버에 대한 WMI 요청을 지정하는 데 사용됩니다. WMI에 대한 자세한 내용은 Windows 관리 계측을 참조하세요.

드라이버가 제공해야 하는 디스패치 루틴은 기본 물리적 디바이스의 유형과 기능에 따라 달라집니다. 드라이버가 처리해야 하는 IRP 주요 함수 코드에 대한 디바이스 유형별 정보는 WDK(Windows 드라이버 키트)의 디바이스 유형별 설명서를 참조하세요.