Avvio di un dispositivo in un driver del bus
Un driver del bus avvia un dispositivo figlio ( PDO figlio) con una procedura come la seguente nella routine DispatchPnP :
Avviare il dispositivo.
I passaggi esatti variano da dispositivo a dispositivo.
Ad esempio, il driver del bus PCI programma i registri di mapping per abilitare le richieste nel bus PCI. Il driver del bus ISA PnP abilita la scheda ISA PnP in modo che il driver della funzione possa accedervi.
Completare l'IRP.
Se le operazioni di avvio del driver del bus hanno avuto esito positivo, il driver imposta Irp-IoStatus.Status> su STATUS_SUCCESS e chiama IoCompleteRequest specificando un aumento della priorità di IO_NO_INCREMENT. Il driver del bus restituisce STATUS_SUCCESS dalla routine DispatchPnP .
Se il driver del bus riscontra un errore durante le operazioni di avvio, il driver imposta uno stato di errore nell'IRP, chiama IoCompleteRequest con IO_NO_INCREMENT e restituisce l'errore dalla routine DispatchPnP .
Se un driver del bus richiede tempo per avviare il dispositivo, può contrassegnare l'IRP come in sospeso e restituire STATUS_PENDING.