IRP_MN_QUERY_RESOURCE_REQUIREMENTS

El administrador de PnP usa este IRP para obtener la lista de requisitos de recursos de un dispositivo.

Los controladores de autobús deben controlar esta solicitud para sus dispositivos secundarios que requieren recursos de hardware. Los controladores de filtro de autobús pueden controlar esta solicitud. Los controladores de función y filtro no controlan este IRP.

Value

0x0B

Código principal

IRP_MJ_PNP

Cuándo se envió

El administrador de PnP envía este IRP cuando se enumera un dispositivo, antes de asignar recursos a un dispositivo y cuando un controlador informa de que los requisitos de recursos de su dispositivo han cambiado.

El administrador de PnP envía este IRP a IRQL PASSIVE_LEVEL en un contexto de subproceso arbitrario.

Parámetros de entrada

Ninguno

Parámetros de salida

Se devuelve en el bloque de estado de E/S.

Bloque de estado de entrada/salida

Un controlador que controla este IRP establece Irp-IoStatus.Status> en STATUS_SUCCESS o un estado de error adecuado.

Si se ejecuta correctamente, un controlador establece Irp-IoStatus.Information> en un puntero a un IO_RESOURCE_REQUIREMENTS_LIST que contiene la información solicitada. En un error, el controlador establece Irp-IoStatus.Information> en cero.

Operación

Si un controlador de bus devuelve una lista de requisitos de recursos en respuesta a este IRP, asigna un IO_RESOURCE_REQUIREMENTS_LIST de la memoria paginada. El administrador de PnP libera el búfer cuando ya no es necesario.

Si un dispositivo no requiere recursos de hardware, el controlador de bus del dispositivo completa el IRP (IoCompleteRequest) sin modificar Irp-IoStatus.Status> o Irp-IoStatus.Information>.

Si un controlador de filtro de bus controla este IRP, modifica la lista de requisitos de recursos creada por el controlador de autobús. Un controlador de filtro de bus modifica la lista de la forma de hacer una copia de seguridad de la pila del dispositivo. Un controlador de filtro de bus debe conservar el orden de los recursos en la lista de requisitos de recursos y no debe modificar las etiquetas de recursos que no controla. Si un controlador de filtro de bus cambia el tamaño de la lista de requisitos de recursos, el controlador debe asignar una nueva estructura de la memoria paginada y liberar la estructura anterior. Si un controlador de filtro de bus agrega un nuevo requisito de recurso a la lista y el recurso se asigna al dispositivo, el controlador debe filtrar el nuevo recurso de la IRP_MN_START_DEVICE IRP para que no se pase al controlador de autobús.

Los controladores de filtro que no son de bus y función no controlan este IRP; lo pasan al siguiente controlador inferior sin cambios en Irp-IoStatus>.

Consulte Plug and Play para conocer las reglas generales para controlar Plug and Play IRP menores.

Envío de este IRP

Reservado para uso del sistema. Los controladores no deben enviar este IRP.

Requisitos

Encabezado

Wdm.h (incluya Wdm.h, Ntddk.h o Ntifs.h)

Consulte también

IO_RESOURCE_REQUIREMENTS_LIST