버스 드라이버에서 디바이스 시작
버스 드라이버는 DispatchPnP 루틴에서 다음과 같은 프로시저를 사용하여 자식 디바이스(자식 PDO)를 시작합니다.
디바이스를 시작합니다.
정확한 단계는 디바이스마다 다릅니다.
예를 들어 PCI 버스 드라이버는 매핑 레지스터를 프로그래밍하여 PCI 버스에서 요청을 사용하도록 설정합니다. PnP ISA 버스 드라이버는 함수 드라이버가 액세스할 수 있도록 PnP ISA 카드 사용하도록 설정합니다.
IRP를 완료합니다.
버스 드라이버의 시작 작업이 성공한 경우 드라이버는 Irp-IoStatus.Status>를 STATUS_SUCCESS 설정하고 IO_NO_INCREMENT 우선 순위 향상을 지정하는 IoCompleteRequest를 호출합니다. 버스 드라이버는 DispatchPnP 루틴에서 STATUS_SUCCESS 반환합니다.
버스 드라이버가 시작 작업 중에 오류가 발생하면 드라이버는 IRP에서 오류 상태 설정하고, IO_NO_INCREMENT 사용하여 IoCompleteRequest를 호출하고, DispatchPnP 루틴에서 오류를 반환합니다.
버스 드라이버가 디바이스를 시작하는 데 약간의 시간이 필요한 경우 IRP를 보류 중으로 표시하고 STATUS_PENDING 반환할 수 있습니다.