Partager via


IRP_MN_QUERY_PNP_DEVICE_STATE

Les pilotes de fonction, de filtre et de bus peuvent gérer cette demande.

Valeur47

0x14

Code majeur

IRP_MJ_PNP

Date d’envoi

Le gestionnaire PnP envoie cette IRP après que les pilotes d’un appareil ont retourné la réussite de la demande IRP_MN_START_DEVICE envoyée lors du premier démarrage d’un appareil. Cette IRP n’est pas envoyée sur un démarrage après un arrêt pour le rééquilibrage des ressources. Le gestionnaire PnP envoie également cette IRP lorsqu’un pilote de l’appareil appelle IoInvalidateDeviceState.

Le gestionnaire PnP envoie cette IRP à IRQL PASSIVE_LEVEL dans le contexte d’un thread arbitraire.

Paramètres d’entrée

Aucun

Paramètres de sortie

Retourné dans le bloc status d’E/S.

Bloc d’état E/S

Un pilote définit Irp-IoStatus.Status> sur STATUS_SUCCESS ou sur un status d’erreur approprié, comme STATUS_UNSUCCESSFUL.

En cas de réussite, un pilote définit Irp-IoStatus.Information> sur un masque de bits PNP_DEVICE_STATE.

Si un pilote de fonction ou de filtre ne gère pas cette IRP, il appelle IoSkipCurrentIrpStackLocation, ne définit pas de routine IoCompletion et transmet l’IRP au pilote suivant. Un tel pilote ne doit pas modifier Irp-IoStatus> et ne doit pas terminer l’IRP.

Si un pilote de bus ne gère pas cette IRP, il laisse Irp-IoStatus.Status> tel quel et termine l’IRP.

Opération

Cette IRP est d’abord gérée par le pilote en haut de la pile de périphériques, puis par chaque pilote inférieur suivant dans la pile.

Un pilote gère cette IRP s’il a des informations sur l’état PnP d’un appareil. Un pilote peut définir ou effacer les indicateurs dans le masque de bits PNP_DEVICE_STATE. Si un autre pilote a défini une PNP_DEVICE_STATE dans Irp-IoStatus.Information>, un pilote doit prendre soin de modifier les indicateurs dans ce masque de bits plutôt que de remplacer l’ensemble de la structure.

Consultez Plug-and-Play pour connaître les règles générales de gestion Plug-and-Play irps mineurs.

Envoi de cette IRP

Réservé pour le système. Les pilotes ne doivent pas envoyer cette IRP.

Spécifications

En-tête

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

Voir aussi

IoInvalidateDeviceState

PNP_DEVICE_STATE