Partilhar via


IRP_MN_QUERY_RESOURCE_REQUIREMENTS

O gerenciador de PnP usa esse IRP para obter a lista de requisitos de recursos de um dispositivo.

Os motoristas de ônibus devem lidar com essa solicitação para seus dispositivos filho que exigem recursos de hardware. Os drivers de filtro de barramento podem lidar com essa solicitação. Os drivers de função e filtro não lidam com esse IRP.

Valor

0x0B

Código principal

IRP_MJ_PNP

Quando enviado

O gerenciador PnP envia esse IRP quando um dispositivo é enumerado, antes de alocar recursos para um dispositivo e quando um driver relata que os requisitos de recursos do dispositivo foram alterados.

O gerenciador de PnP envia esse IRP no PASSIVE_LEVEL IRQL em um contexto de thread arbitrário.

Parâmetros de Entrada

Nenhum

Parâmetros de saída

Retornado no bloco status de E/S.

Bloco de Status de E/S

Um driver que manipula esse IRP define Irp-IoStatus.Status> como STATUS_SUCCESS ou um erro apropriado status.

Em caso de êxito, um driver define Irp-IoStatus.Information> como um ponteiro para um IO_RESOURCE_REQUIREMENTS_LIST que contém as informações solicitadas. Em um erro, o driver define Irp-IoStatus.Information> como zero.

Operação

Se um driver de barramento retornar uma lista de requisitos de recursos em resposta a esse IRP, ele alocará um IO_RESOURCE_REQUIREMENTS_LIST da memória paginada. O gerenciador PnP libera o buffer quando ele não é mais necessário.

Se um dispositivo não exigir recursos de hardware, o driver de barramento do dispositivo concluirá o IRP (IoCompleteRequest) sem modificar Irp-IoStatus.Status> ou Irp-IoStatus.Information>.

Se um driver de filtro de barramento manipular esse IRP, ele modificará a lista de requisitos de recursos criada pelo driver de barramento. Um driver de filtro de barramento modifica a lista no caminho de backup do IRP na pilha do dispositivo. Um driver de filtro de barramento deve preservar a ordem dos recursos na lista de requisitos de recursos e não deve alterar as marcas de recurso que ele não manipula. Se um driver de filtro de barramento alterar o tamanho da lista de requisitos de recursos, o driver deverá alocar uma nova estrutura da memória paginada e liberar a estrutura anterior. Se um driver de filtro de barramento adicionar um novo requisito de recurso à lista e o recurso for atribuído ao dispositivo, o driver deverá filtrar o novo recurso da IRP_MN_START_DEVICE IRP para que ele não seja passado para o motorista do ônibus.

Os drivers de filtro de função e não de barramento não lidam com esse IRP; eles passam para o próximo driver inferior sem alterações em Irp-IoStatus>.

Consulte Plug and Play para obter as regras gerais para lidar com Plug and Play IRPs menores.

Enviando este IRP

Reservado para uso do sistema. Os drivers não devem enviar este IRP.

Requisitos

parâmetro

Wdm.h (inclua Wdm.h, Ntddk.h ou Ntifs.h)

Confira também

IO_RESOURCE_REQUIREMENTS_LIST