Freigeben über


Plug and Play Minor IRPs

In diesem Abschnitt werden die PnP-IRPs beschrieben, die an Treiber gesendet werden. All PnP IRPs have the major function code IRP_MJ_PNP and a minor function code indicating the particular PnP request.

Dieser Abschnitt enthält Referenzinformationen für die einzelnen IRPs. Unter "Plug and Play " finden Sie eine Beschreibung der Reihenfolge, in der die IRPs gesendet werden, eine Diskussion über die Behandlung von IRPs in DispatchPnP-Routinen und eine allgemeine Erläuterung der PnP-Konzepte und -Terminologie.

Für jedes IRP und jede Art von Treiber ist entweder ein Treiber erforderlich, um das IRP zu verarbeiten, kann optional das IRP verarbeiten oder darf das IRP nicht verarbeiten. In der nachstehenden Tabelle können Sie ermitteln, welche IRPs Ihr Treiber behandelt, und dann auf den Referenzseiten informationen zu den einzelnen IRPs. Die IRPs werden in funktionaler Reihenfolge in der Tabelle und in alphabetischer Reihenfolge auf den IRP-Referenzseiten aufgeführt.

Wenn ein IRP in der Tabelle für einen bestimmten Treiber als "Nein" gekennzeichnet ist, darf dieser Treiber das IRP nicht verarbeiten. Der Treiber muss das IRP an den nächsten Treiber im Gerätestapel übergeben, wie auf der Referenzseite für das IRP beschrieben.

Der PnP-Manager sendet diese IRPs. PnP-Treiber können einige dieser IRPs senden, aber nur solche, die in diesem Abschnitt aufgeführt sind.

Im Folgenden sind die Hilfsfunktionscodes für PnP-IRPs und die Treibertypen aufgeführt, die sie behandeln:

PnP-IRP-Hilfsfunktionscode Value Funktions- oder Filtertreiber für Nichtbusgeräte Funktionstreiber für Busgerät (für Bus-FDO) Bustreiber oder Busfiltertreiber (für untergeordnete PDOs)
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 Optional oder Erforderlich
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 Nein oder Optional
- 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) Erforderlich oder optional in bestimmten Situationen. Weitere Informationen finden Sie auf der Referenzseite des IRP.

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

(3) Unterstützt in Windows 7 und höheren Versionen von Windows.