Delen via


Een apparaat opstarten in een busdriver

Een buschauffeur start een onderliggend apparaat (onderliggende PDO) met een procedure zoals het volgende in de DispatchPnP-routine :

  1. Start het apparaat.

    De exacte stappen variƫren van apparaat tot apparaat.

    Zo programmeert het PCI-busstuurprogramma zijn toewijzingsregisters om verzoeken op de PCI-bus in te schakelen. Met het PnP ISA-busstuurprogramma kan de PnP ISA-kaart worden ingeschakeld, zodat het functiestuurprogramma er toegang toe heeft.

  2. Voltooi de IRP.

    Als de startbewerkingen van de busbestuurder zijn geslaagd, stelt de bestuurder Irp-IoStatus.Status> in op STATUS_SUCCESS en roept IoCompleteRequest op met een prioriteitsboost van IO_NO_INCREMENT. De buschauffeur retourneert STATUS_SUCCESS uit de DispatchPnP-routine .

    Als het busstuurprogramma tijdens de startbewerkingen een fout tegenkomt, stelt het stuurprogramma een foutstatus in de IRP in, roept IoCompleteRequest aan met IO_NO_INCREMENT en retourneert de fout uit de DispatchPnP-routine .

Als een busdriver enige tijd nodig heeft om het apparaat te starten, kan het de IRP als in behandeling markeren en STATUS_PENDING teruggeven.