即插即用次要 IRP

本部分介绍发送到驱动程序的 PnP IRP。 All PnP IRPs have the major function code IRP_MJ_PNP and a minor function code indicating the particular PnP request.

本部分提供各个 IRP 的参考信息。 有关 IRP 发送顺序的说明、如何处理 DispatchPnP 例程中的 IRP 以及 PnP 概念和术语的一般讨论,请参阅即插即用。

对于每个 IRP 和每种驱动程序,驱动程序要么需要处理 IRP,要么可以选择处理 IRP,要么不能处理 IRP。 请查阅下表,确定驱动程序将处理的 IRP,然后查阅参考页以获取有关各个 IRP 的信息。 IRP 按表的功能顺序列出,IRP 引用页按字母顺序列出。

如果特定驱动程序的表中标记为“否”,该驱动程序不得处理 IRP。 驱动程序必须将 IRP 传递到设备堆栈中的下一个驱动程序,如 IRP 的参考页中所述。

PnP 管理器发送这些 IRP。 PnP 驱动程序可以发送其中一些 IRP,但只能发送本节中所述的 IRP。

以下是 PnP IRP 的次要函数代码,以及处理它们的驱动程序类型:

PnP IRP 次要函数代码 Value 非总线设备的函数或筛选器驱动程序 总线设备的函数驱动程序(对于总线 FDO) 总线驱动程序或总线筛选器驱动程序(适用于子 PDO)
IRP_MN_START_DEVICE 0x00 Required Required Required
IRP_MN_QUERY_REMOVE_DEVICE 0x01 Required Required Required
IRP_MN_REMOVE_DEVICE 0x02 Required Required Required
IRP_MN_CANCEL_REMOVE_DEVICE 0x03 Required Required Required
IRP_MN_STOP_DEVICE 0x04 Required Required Required
IRP_MN_QUERY_STOP_DEVICE 0x05 Required Required Required
IRP_MN_CANCEL_STOP_DEVICE 0x06 Required Required Required
IRP_MN_QUERY_DEVICE_RELATIONS 0x07
- BusRelations x Optional (1) Required No (2)
- EjectionRelations x No No Optional
- RemovalRelations x Optional Optional No
- TargetDeviceRelation x No No Required
IRP_MN_QUERY_INTERFACE 0x08 Optional Optional Required (1)
IRP_MN_QUERY_CAPABILITIES 0x09 Optional 可选或必选
IRP_MN_QUERY_RESOURCES 0x0A No No Required (1)
IRP_MN_QUERY_RESOURCE_REQUIREMENTS 0x0B No No Required (1)
IRP_MN_QUERY_DEVICE_TEXT 0x0C No No Required (1)
IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D Optional (1) Optional (1) No
IRP_MN_READ_CONFIG 0x0F No No Required (1)
IRP_MN_WRITE_CONFIG 0x10 No No Required (1)
IRP_MN_EJECT 0x11 No No Required
IRP_MN_SET_LOCK 0x12 No No Required (1)
IRP_MN_QUERY_ID 0x13
- BusQueryDeviceID x No No Required
- BusQueryHardwareIDs x No No Optional
- BusQueryCompatibleIDs x No 否或可选
- BusQueryInstanceID x No No Optional
- BusQueryContainerID x No No Required (3)
IRP_MN_QUERY_PNP_DEVICE_STATE 0x14 Optional Optional Optional
IRP_MN_QUERY_BUS_INFORMATION 0x15 No No Required (1)
IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16 Required (1) Required (1) Required (1)
IRP_MN_SURPRISE_REMOVAL 0x17 Required Required Required
IRP_MN_DEVICE_ENUMERATED 0x19 No No Required (1)

(1) 在某些情况下是必需的或可选。 有关更多详细信息,请参阅 IRP 的参考页。

(2) Bus filter drivers might handle a query for BusRelations.

(3) 在 Windows 7 及更高版本的 Windows 中受支持。