플러그 앤 플레이 부 IRP

이 섹션에서는 드라이버로 전송되는 PnP IRP에 대해 설명합니다. 모든 PnP IRP에는 IRP_MJ_PNP 주 함수 코드와 특정 PnP 요청을 나타내는 부 함수 코드가 있습니다.

이 섹션에서는 개별 IRP에 대한 참조 정보를 제공합니다. IRP가 전송되는 순서에 대한 설명, DispatchPnP 루틴에서 IRP를 처리하는 방법에 대한 설명 및 PnP 개념 및 용어에 대한 일반적인 논의는 플러그 앤 플레이 참조하세요.

각 IRP 및 각 종류의 드라이버에 대해 드라이버는 IRP를 처리하는 데 필요하거나, 선택적으로 IRP를 처리할 수 있거나, IRP를 처리해서는 안 됩니다. 드라이버에서 처리할 IRP를 식별하려면 아래 표를 참조한 다음, 개별 IRP에 대한 자세한 내용은 참조 페이지를 참조하세요. IRP 참조 페이지에서 IRP는 테이블의 기능 순서와 사전순으로 나열됩니다.

IRP가 특정 드라이버의 테이블에서 "아니요"로 표시된 경우 해당 드라이버는 IRP를 처리해서는 안 됩니다. 드라이버는 IRP에 대한 참조 페이지에 설명된 대로 디바이스 스택의 다음 드라이버에 IRP를 전달해야 합니다.

PnP 관리자는 이러한 IRP를 보냅니다. PnP 드라이버는 이러한 IRP 중 일부를 보낼 수 있지만 이 섹션에서 언급된 IDP만 보낼 수 있습니다.

다음은 PnP IRP에 대한 부 함수 코드와 이를 처리하는 드라이버 형식입니다.

PnP IRP 부 함수 코드 비버스 디바이스에 대한 함수 또는 필터 드라이버 버스 디바이스용 함수 드라이버(버스 FDO의 경우) 버스 드라이버 또는 버스 필터 드라이버(자식 PDO용)
IRP_MN_START_DEVICE 0x00 필수 필수 필수
IRP_MN_QUERY_REMOVE_DEVICE 0x01 필수 필수 필수
IRP_MN_REMOVE_DEVICE 0x02 필수 필수 필수
IRP_MN_CANCEL_REMOVE_DEVICE 0x03 필수 필수 필수
IRP_MN_STOP_DEVICE 0x04 필수 필수 필수
IRP_MN_QUERY_STOP_DEVICE 0x05 필수 필수 필수
IRP_MN_CANCEL_STOP_DEVICE 0x06 필수 필수 필수
IRP_MN_QUERY_DEVICE_RELATIONS 0x07
- BusRelations x 선택 사항(1) 필수 아니요(2)
- EjectionRelations x 아니요 선택 사항
- RemovalRelations x 선택 사항 선택 사항 아니요
- TargetDeviceRelation x 필수
IRP_MN_QUERY_INTERFACE 0x08 선택 사항 선택 사항 필수(1)
IRP_MN_QUERY_CAPABILITIES 0x09 선택 사항 선택 사항 또는 필수
IRP_MN_QUERY_RESOURCES 0x0A 아니요 필수(1)
IRP_MN_QUERY_RESOURCE_REQUIREMENTS 0x0B 아니요 필수(1)
IRP_MN_QUERY_DEVICE_TEXT 0x0C 아니요 아니요 필수(1)
IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D 선택 사항(1) 선택 사항(1) 아니요
IRP_MN_READ_CONFIG 0x0F 아니요 필수(1)
IRP_MN_WRITE_CONFIG 0x10 아니요 아니요 필수(1)
IRP_MN_EJECT 0x11 아니요 필수
IRP_MN_SET_LOCK 0x12 아니요 필수(1)
IRP_MN_QUERY_ID 0x13
- BusQueryDeviceID x 아니요 필수
- BusQueryHardwareIDs x 아니요 선택 사항
- BusQueryCompatibleIDs x 아니요 아니요 또는 선택 사항
- BusQueryInstanceID x 아니요 선택 사항
- BusQueryContainerID x 아니요 필수(3)
IRP_MN_QUERY_PNP_DEVICE_STATE 0x14 선택 사항 선택 사항 선택 사항
IRP_MN_QUERY_BUS_INFORMATION 0x15 필수(1)
IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16 필수(1) 필수(1) 필수(1)
IRP_MN_SURPRISE_REMOVAL 0x17 필수 필수 필수
IRP_MN_DEVICE_ENUMERATED 0x19 필수(1)

(1) 특정 상황에서 필수 또는 선택 사항입니다. 자세한 내용은 IRP에 대한 참조 페이지를 참조하세요.

(2) 버스 필터 드라이버는 BusRelations에 대한 쿼리를 처리할 수 있습니다.

(3) Windows 7 이상 버전의 Windows에서 지원됩니다.