Compartilhar via


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

IRP_MJ_PNP

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)