IRP_MN_SET_LOCK

버스 드라이버는 디바이스 잠금을 지원하는 자식 디바이스(자식 PDO)에 대해 이 IRP를 처리해야 합니다. 함수 및 필터 드라이버는 이 요청을 처리하지 않습니다.

0x12

주 코드

IRP_MJ_PNP

보낸 경우

PnP 관리자는 이 IRP를 드라이버에 보내 디바이스를 잠그고 디바이스 배출을 방지하거나 디바이스 잠금을 해제합니다.

PnP 관리자는 임의 스레드 컨텍스트에서 IRQL PASSIVE_LEVEL 이 IRP를 보냅니다.

입력 매개 변수

IO_STACK_LOCATION 구조체의 Parameters.SetLock.Lock 멤버는 디바이스 잠금(TRUE) 또는 잠금 해제(FALSE) 여부를 지정하는 BOOLEAN 값입니다.

출력 매개 변수

없음

I/O 상태 블록

버스 드라이버는 Irp-IoStatus.Status>를 STATUS_SUCCESS 또는 적절한 오류 상태 설정합니다.

성공하면 드라이버는 Irp-IoStatus.Information>을 0으로 설정합니다.

버스 드라이버가 이 IRP를 처리하지 않으면 Irp-IoStatus.Status>를 있는 그대로 두고 IRP를 완료합니다.

함수 및 필터 드라이버는 이 IRP를 처리하지 않습니다. 이러한 드라이버는 IoSkipCurrentIrpStackLocation 을 호출하고 IRP를 다음 드라이버로 전달합니다. 함수 및 필터 드라이버는 IoCompletion 루틴을 설정하지 않고, Irp-IoStatus>를 수정하지 않으며, IRP를 완료해서는 안됩니다.

작업

드라이버가 이 IRP에 대한 성공을 반환하는 경우 IRP를 완료하기 전에 디바이스가 잠겨 있거나 잠금 해제되었는지 확인합니다.

플러그 앤 플레이 사소한 IRP를 처리하기 위한 일반 규칙은 플러그 앤 플레이 참조하세요.

이 IRP 보내기

시스템에서 사용하도록 예약되었습니다. 드라이버는 이 IRP를 보내지 않아야 합니다.

요구 사항

헤더

Wdm.h(Wdm.h, Ntddk.h 또는 Ntifs.h 포함)