Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esta seção descreve os IRPs PnP que são enviados para 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 na qual os IRPs são enviados, uma discussão sobre como lidar com IRPs em rotinas DispatchPnP e uma discussão geral sobre conceitos PnP e terminologia.
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 manipular 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 determinado driver, esse driver não deverá manipular o IRP. O driver deve passar o IRP para o próximo driver na pilha do dispositivo, conforme descrito na página de referência do IRP.
O gerenciador PnP envia esses IRPs. Os drivers PnP podem enviar alguns desses IRPs, mas somente aqueles indicados nesta seção.
Veja a seguir os códigos de função menores para IRPs PnP e os tipos de driver que os manipulam:
| Código de função secundária PnP IRP | Value | Driver de função ou filtro para dispositivo não-bus | Driver de função para dispositivo de barramento (para FDO de barramento) | Motorista de ônibus ou motorista de filtro de ônibus (para PDOs filho) |
|---|---|---|---|---|
| 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 opcional 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) Com suporte no Windows 7 e versões posteriores do Windows.