IRP_MN_QUERY_PNP_DEVICE_STATE

Los controladores de función, filtro y autobús pueden controlar esta solicitud.

Valor47

0x14

Código principal

IRP_MJ_PNP

Cuándo se envió

El administrador de PnP envía este IRP después de que los controladores de un dispositivo devuelvan el éxito de la solicitud de IRP_MN_START_DEVICE enviada cuando se inicia un dispositivo por primera vez. Este IRP no se envía en un inicio después de una detención para el reequilibrio de recursos. El administrador de PnP también envía este IRP cuando un controlador para el dispositivo llama a IoInvalidateDeviceState.

El administrador de PnP envía este IRP en IRQL PASSIVE_LEVEL en el contexto de un 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 establece Irp-IoStatus.Status> en STATUS_SUCCESS o en un estado de error adecuado, como STATUS_UNSUCCESSFUL.

Si se ejecuta correctamente, un controlador establece Irp-IoStatus.Information> en una máscara de bits de PNP_DEVICE_STATE.

Si una función o un controlador de filtro no controla este IRP, llama a IoSkipCurrentIrpStackLocation, no establece una rutina de IoCompletion y pasa el IRP al siguiente controlador. Este controlador no debe modificar Irp-IoStatus> y no debe completar el IRP.

Si un controlador de bus no controla este IRP, deja Irp-IoStatus.Status> tal y como está y completa el IRP.

Operación

Este IRP se controla primero por el controlador en la parte superior de la pila de dispositivos y, a continuación, por cada controlador inferior siguiente de la pila.

Un controlador controla este IRP si tiene información sobre el estado PnP de un dispositivo. Un controlador puede establecer o borrar las marcas de la PNP_DEVICE_STATE máscara de bits. Si otro controlador ha establecido un PNP_DEVICE_STATE en Irp-IoStatus.Information>, un controlador debe tener cuidado de modificar las marcas de esa máscara de bits en lugar de sobrescribir toda la estructura.

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

IoInvalidateDeviceState

PNP_DEVICE_STATE