Compartir a través de


IRP secundarios de Plug and Play

En esta sección se describen los IRP de PnP que se envían a los controladores. All PnP IRPs have the major function code IRP_MJ_PNP and a minor function code indicating the particular PnP request.

En esta sección se proporciona información de referencia para los IRP individuales. Consulte Plug and Play para obtener una descripción del orden en el que se envían los IRP, una explicación de cómo controlar los IRP en las rutinas dispatchPnP y un análisis general de conceptos y terminología de PnP.

Para cada IRP y cada tipo de controlador, se requiere un controlador para controlar el IRP, puede controlar opcionalmente irP o no debe controlar el IRP. Consulte la tabla siguiente para identificar qué IRP controlará el controlador y, a continuación, consulte las páginas de referencia para obtener información sobre los IRP individuales. Los IRP se muestran en orden funcional en la tabla y en orden alfabético en las páginas de referencia de IRP.

Si un IRP está marcado como "No" en la tabla para un controlador determinado, ese controlador no debe controlar el IRP. El controlador debe pasar el IRP al siguiente controlador de la pila de dispositivos, tal como se describe en la página de referencia del IRP.

El administrador de PnP envía estos IRP. Los controladores PnP pueden enviar algunos de estos IRP, pero solo los que se indican en esta sección.

A continuación se muestran los códigos de función secundarias para los IRP de PnP y los tipos de controlador que los controlan:

Código de función secundaria de IRP de PnP Value Función o controlador de filtro para dispositivos que no son de bus Controlador de función para el dispositivo bus (para FDO de bus) Controlador de autobús o controlador de filtro de autobús (para PPO secundarios)
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 Opcional o obligatorio
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 No o opcional
- 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) Obligatorio o opcional en determinadas situaciones. Consulte la página de referencia del IRP para obtener más detalles.

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

(3) Compatible con Windows 7 y versiones posteriores de Windows.