Plug-and-Play IIP mineurs

Cette section décrit les ADRESSES IP PnP envoyées aux pilotes. Tous les IIP PnP ont le code de fonction principal IRP_MJ_PNP et un code de fonction mineur indiquant la demande PnP particulière.

Cette section fournit des informations de référence pour chaque IRP. Consultez Plug-and-Play pour obtenir une description de l’ordre d’envoi des IRP, une discussion sur la façon de gérer les IRP dans les routines DispatchPnP et une présentation générale des concepts et de la terminologie pnP.

Pour chaque IRP et chaque type de pilote, un pilote est requis pour gérer l’IRP, peut éventuellement gérer l’IRP ou ne doit pas gérer l’IRP. Consultez le tableau ci-dessous pour identifier les IIP que votre pilote va gérer, puis consultez les pages de référence pour plus d’informations sur les IIP individuels. Les IRP sont répertoriés dans l’ordre fonctionnel dans le tableau et dans l’ordre alphabétique dans les pages de référence IRP.

Si un IRP est marqué « Non » dans le tableau d’un pilote particulier, ce pilote ne doit pas gérer l’IRP. Le pilote doit passer l’IRP au pilote suivant dans la pile de périphériques, comme décrit dans la page de référence de l’IRP.

Le gestionnaire PnP envoie ces irps. Les pilotes PnP peuvent envoyer certains de ces irps, mais uniquement ceux mentionnés dans cette section.

Voici les codes de fonction mineurs pour les IRP PnP et les types de pilotes qui les gèrent :

Code de fonction mineure IRP PnP Valeur Pilote de fonction ou de filtre pour un périphérique nonbus Pilote de fonction pour le périphérique de bus (pour le FDO de bus) Pilote de bus ou pilote de filtre de bus (pour les PDO enfants)
IRP_MN_START_DEVICE 0x00 Obligatoire Obligatoire Obligatoire
IRP_MN_QUERY_REMOVE_DEVICE 0x01 Obligatoire Obligatoire Obligatoire
IRP_MN_REMOVE_DEVICE 0x02 Obligatoire Obligatoire Obligatoire
IRP_MN_CANCEL_REMOVE_DEVICE 0x03 Obligatoire Obligatoire Obligatoire
IRP_MN_STOP_DEVICE 0x04 Obligatoire Obligatoire Obligatoire
IRP_MN_QUERY_STOP_DEVICE 0x05 Obligatoire Obligatoire Obligatoire
IRP_MN_CANCEL_STOP_DEVICE 0x06 Obligatoire Obligatoire Obligatoire
IRP_MN_QUERY_DEVICE_RELATIONS 0x07
- BusRelations x Facultatif (1) Obligatoire Non (2)
- EjectionRelations x Non Non Facultatif
- RemovalRelations x Facultatif Facultatif Non
- TargetDeviceRelation x Non Non Obligatoire
IRP_MN_QUERY_INTERFACE 0x08 Facultatif Facultatif Obligatoire (1)
IRP_MN_QUERY_CAPABILITIES 0x09 Facultatif Facultatif ou Obligatoire
IRP_MN_QUERY_RESOURCES 0x0A Non Non Obligatoire (1)
IRP_MN_QUERY_RESOURCE_REQUIREMENTS 0x0B Non Non Obligatoire (1)
IRP_MN_QUERY_DEVICE_TEXT 0x0C Non Non Obligatoire (1)
IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D Facultatif (1) Facultatif (1) Non
IRP_MN_READ_CONFIG 0x0F Non Non Obligatoire (1)
IRP_MN_WRITE_CONFIG 0x10 Non Non Obligatoire (1)
IRP_MN_EJECT 0x11 Non Non Obligatoire
IRP_MN_SET_LOCK 0x12 Non Non Obligatoire (1)
IRP_MN_QUERY_ID 0x13
- BusQueryDeviceID x Non Non Obligatoire
- BusQueryHardwareIDs x Non Non Facultatif
- BusQueryCompatibleIDs x Non Non ou Facultatif
- BusQueryInstanceID x Non Non Facultatif
- BusQueryContainerID x Non Non Obligatoire (3)
IRP_MN_QUERY_PNP_DEVICE_STATE 0x14 Facultatif Facultatif Facultatif
IRP_MN_QUERY_BUS_INFORMATION 0x15 Non Non Obligatoire (1)
IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16 Obligatoire (1) Obligatoire (1) Obligatoire (1)
IRP_MN_SURPRISE_REMOVAL 0x17 Obligatoire Obligatoire Obligatoire
IRP_MN_DEVICE_ENUMERATED 0x19 Non Non Obligatoire (1)

(1) Obligatoire ou facultatif dans certaines situations. Pour plus d’informations, consultez la page de référence de l’IRP.

(2) Les pilotes de filtre de bus peuvent gérer une requête pour BusRelations.

(3) Pris en charge dans Windows 7 et versions ultérieures de Windows.