Partilhar via


IRPs menores Plug and Play

Esta seção descreve os IRPs PnP que são enviados aos drivers. All PnP IRPs have the major function code IRP_MJ_PNP and a minor function code indicating the particular PnP request.

Esta seção fornece informações de referência para os IRPs individuais. Consulte Plug and Play para obter uma descrição da ordem em que os IRPs são enviados, uma discussão sobre como lidar com IRPs em rotinas DispatchPnP e uma discussão geral dos conceitos e terminologia do PnP.

Para cada IRP e cada tipo de driver, um driver é necessário para lidar com o IRP, pode opcionalmente lidar com o IRP, ou não deve lidar com o IRP. Consulte a tabela abaixo para identificar quais IRPs seu driver manipulará e, em seguida, consulte as páginas de referência para obter informações sobre os IRPs individuais. Os IRPs são listados em ordem funcional na tabela e em ordem alfabética nas páginas de referência do IRP.

Se um IRP estiver marcado como "Não" na tabela para um driver específico, esse driver não deve manipular o IRP. O driver deve passar o IRP para o próximo driver na pilha de dispositivos, conforme descrito na página de referência para o IRP.

O gerente PnP envia esses IRPs. Os drivers PnP podem enviar alguns desses IRPs, mas apenas aqueles assim observados nesta seção.

A seguir estão os códigos de função secundária para IRPs PnP e os tipos de driver que os manipulam:

Código de função secundária IRP PnP Value Função ou driver de filtro para dispositivo não-barramento Driver de função para dispositivo de barramento (para barramento FDO) Bus driver ou driver de filtro de ônibus (para PDOs crianças)
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 ou obrigatório
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 Não ou 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) Obrigatório ou facultativo em determinadas situações. Consulte a página de referência do IRP para obter mais detalhes.

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

(3) Suportado no Windows 7 e versões posteriores do Windows.