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.