IRP_MN_SET_LOCK
Os motoristas de barramento devem lidar com esse IRP para seus dispositivos filho (PDOs filho) que dão suporte ao bloqueio de dispositivo. Os drivers de função e filtro não lidam com essa solicitação.
Valor
0x12
Código principal
Quando enviado
O gerenciador de PnP envia esse IRP para direcionar os driveres para bloquear o dispositivo e evitar a ejeção do dispositivo ou para desbloquear o dispositivo.
O gerenciador PnP envia esse IRP no IRQL PASSIVE_LEVEL em um contexto de thread arbitrário.
Parâmetros de Entrada
O membro Parameters.SetLock.Lock da estrutura IO_STACK_LOCATION é um valor BOOLEAN que especifica se o dispositivo deve ser bloqueado (TRUE) ou desbloqueado (FALSE).
Parâmetros de saída
Nenhum
Bloco de Status de E/S
Um motorista de ônibus define Irp-IoStatus.Status> como STATUS_SUCCESS ou para um erro apropriado status.
Com êxito, um driver define Irp-IoStatus.Information> como zero.
Se um motorista de ônibus não manipular esse IRP, ele deixará Irp-IoStatus.Status> como está e concluirá o IRP.
Os drivers de função e filtro não lidam com esse IRP. Esses drivers chamam IoSkipCurrentIrpStackLocation e passam o IRP para o próximo driver. Os drivers de função e filtro não definem uma rotina IoCompletion, não modificam Irp-IoStatus> e não devem concluir o IRP.
Operação
Se um driver retornar êxito para esse IRP, ele garantirá que o dispositivo tenha sido bloqueado ou desbloqueado antes de concluir o IRP.
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 esse IRP.
Requisitos
parâmetro |
Wdm.h (inclua Wdm.h, Ntddk.h ou Ntifs.h) |