IRP_MN_STOP_DEVICE

모든 PnP 드라이버는 이 IRP를 처리해야 합니다.

0x04

주 코드

IRP_MJ_PNP

보낸 경우

PnP 관리자는 디바이스의 하드웨어 리소스를 다시 구성할 수 있도록 이 IRP를 보내 디바이스를 중지합니다.

Windows 2000 이상 시스템에서 PnP 관리자는 이전 IRP_MN_QUERY_STOP_DEVICE 성공적으로 완료된 경우에만 이 IRP를 보냅니다.

Windows 98/Me에서 PnP 관리자는 디바이스가 비활성화되고 디바이스 스택이 IRP_MN_START_DEVICE 요청에 실패한 경우에도 이 IRP를 보냅니다. 시작에 실패한 경우 PnP 관리자는 이전 IRP_MN_QUERY_STOP_DEVICE 요청 없이 이 IRP를 보냅니다.

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

입력 매개 변수

None

출력 매개 변수

없음

I/O 상태 블록

드라이버는 Irp-IoStatus.Status>를 STATUS_SUCCESS 설정해야 합니다.

작업

이 IRP는 먼저 디바이스 스택의 맨 위에 있는 드라이버에 의해 처리된 다음 스택의 각 하위 드라이버에 전달됩니다.

이 IRP에 대한 응답으로 Windows 2000 이상 드라이버는 디바이스를 중지하고 I/O 포트 및 인터럽트와 같은 디바이스에서 사용되는 하드웨어 리소스를 해제합니다.

Windows 2000 이상에서는 IRP 중지가 디바이스의 하드웨어 리소스를 해제하는 데만 사용되므로 다시 구성할 수 있습니다. 리소스가 다시 구성되면 디바이스가 다시 시작됩니다. 중지 IRP는 IRP 제거의 전구체가 아닙니다. PnP IRP가 디바이스로 전송되는 순서에 대한 자세한 내용은 플러그 앤 플레이 참조하세요.

Windows 98/Me에서는 시작 실패 후와 디바이스를 사용하지 않도록 설정한 경우에도 중지 IRP가 사용됩니다. 이러한 운영 체제에서 실행되는 WDM 드라이버는 디바이스를 중지하고, 들어오는 I/O에 실패하고, 사용자 모드 인터페이스를 사용하지 않도록 설정하고 등록을 취소해야 합니다.

드라이버가 이 IRP에 실패하지 않아야 합니다. 드라이버가 디바이스의 하드웨어 리소스를 해제할 수 없는 경우 이전 쿼리 중지 IRP에 실패해야 합니다.

중지 IRP 처리에 대한 자세한 내용은 디바이스 중지를 참조하세요.

이 IRP 보내기

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

요구 사항

헤더

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

추가 정보

IRP_MN_QUERY_STOP_DEVICE

IRP_MN_START_DEVICE

IoSetDeviceInterfaceState

IoRegisterDeviceInterface