Compartilhar via


Iniciando um dispositivo em um motorista de barramento

Um motorista de ônibus inicia um dispositivo filho ( PDO filho) com um procedimento como o seguinte em sua rotina DispatchPnP :

  1. Inicie o dispositivo.

    As etapas exatas variam de dispositivo para dispositivo.

    Por exemplo, o driver de barramento PCI programa seus registros de mapeamento para habilitar solicitações no barramento PCI. O driver de barramento ISA PnP habilita o cartão ISA do PnP para que o driver de função possa acessá-lo.

  2. Conclua o IRP.

    Se as operações de início do driver de ônibus foram bem-sucedidas, o driver define Irp-IoStatus.Status> como STATUS_SUCCESS e chama IoCompleteRequest especificando um aumento de prioridade de IO_NO_INCREMENT. O motorista do ônibus retorna STATUS_SUCCESS de sua rotina DispatchPnP .

    Se o motorista do ônibus encontrar um erro durante suas operações de início, o driver definirá um erro status no IRP, chamarÁ IoCompleteRequest com IO_NO_INCREMENT e retornará o erro de sua rotina DispatchPnP.

Se um motorista de ônibus exigir algum tempo para iniciar o dispositivo, ele poderá marcar o IRP como pendente e retornar STATUS_PENDING.