디바이스 시작
PnP 관리자는 새로 열거된 디바이스를 시작하거나 리소스 리밸런싱을 위해 중지된 기존 디바이스를 다시 시작하기 위해 드라이버에 IRP_MN_START_DEVICE 요청을 보냅니다.
함수 및 필터 드라이버는 IoCompletion 루틴을 설정하고, IRP_MN_START_DEVICE 요청을 디바이스 스택 아래로 전달하고, 모든 하위 드라이버가 IRP로 완료될 때까지 시작 작업을 연기해야 합니다. 디바이스 스택의 아래쪽 드라이버인 부모 버스 드라이버는 다른 드라이버가 디바이스에 액세스하기 전에 디바이스에서 시작 작업을 수행하는 첫 번째 드라이버여야 합니다.
시작 작업의 적절한 시퀀싱을 보장하기 위해 Windows 2000 이상 버전의 Windows의 PnP 관리자는 디바이스 인터페이스 노출을 연기하고 시작 IRP가 성공할 때까지 디바이스에 대한 요청 만들기를 차단합니다.
디바이스용 드라이버가 IRP_MN_START_DEVICE 요청에 실패하면 PnP 관리자는 디바이스 스택(Windows 2000 이상 버전의 Windows)에 IRP_MN_REMOVE_DEVICE 요청을 보냅니다. 이 IRP에 대한 응답으로 디바이스의 드라이버는 시작 작업을 실행 취소하고(IRP 시작에 성공한 경우), AddDevice 작업을 실행 취소하고, 디바이스 스택에서 분리합니다. PnP 관리자는 이러한 디바이스를 "시작 실패"로 표시합니다.
이 섹션에서는 다음 항목을 다룹니다.