Partager via


IRP_MN_SET_LOCK

Les pilotes de bus doivent gérer cette IRP pour leurs appareils enfants (PDO enfants) qui prennent en charge le verrouillage des appareils. Les pilotes de fonction et de filtre ne gèrent pas cette demande.

Valeur

0x12

Code majeur

IRP_MJ_PNP

Date d’envoi

Le gestionnaire PnP envoie cette IRP pour diriger le ou les pilotes pour verrouiller l’appareil et empêcher l’éjection de l’appareil, ou pour déverrouiller l’appareil.

Le gestionnaire PnP envoie cette IRP à IRQL PASSIVE_LEVEL dans un contexte de thread arbitraire.

Paramètres d’entrée

Le membre Parameters.SetLock.Lock de la structure IO_STACK_LOCATION est une valeur BOOLEAN qui spécifie s’il faut verrouiller (TRUE) ou déverrouiller (FALSE) l’appareil.

Paramètres de sortie

None

Bloc d’état E/S

Un pilote de bus définit Irp-IoStatus.Status> sur STATUS_SUCCESS ou sur une status d’erreur appropriée.

En cas de réussite, un pilote définit Irp-IoStatus.Information> sur zéro.

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

Les pilotes de fonction et de filtre ne gèrent pas cette IRP. Ces pilotes appellent IoSkipCurrentIrpStackLocation et passent l’IRP au pilote suivant. Les pilotes de fonction et de filtre ne définissent pas de routine IoCompletion, ne modifient pas Irp-IoStatus> et ne doivent pas terminer l’IRP.

Opération

Si un pilote retourne la réussite de cette IRP, il garantit que l’appareil a été verrouillé ou déverrouillé avant de terminer l’IRP.

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

Envoi de cet 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)