Compartir a través de


Iniciar un dispositivo en un controlador de bus

Un controlador de bus inicia un dispositivo secundario ( PDO secundario) con un procedimiento como el siguiente en su rutina DispatchPnP :

  1. Inicie el dispositivo.

    Los pasos exactos varían de dispositivo a dispositivo.

    Por ejemplo, el controlador de bus PCI programa sus registros de asignación para habilitar las solicitudes en el bus PCI. El controlador de bus ISA PnP habilita la tarjeta ISA PnP para que el controlador de función pueda acceder a él.

  2. Complete el IRP.

    Si las operaciones de inicio del controlador de bus se realizaron correctamente, el controlador establece Irp-IoStatus.Status> en STATUS_SUCCESS y llama a IoCompleteRequest especificando un aumento de prioridad de IO_NO_INCREMENT. El controlador de autobús devuelve STATUS_SUCCESS de su rutina DispatchPnP .

    Si el controlador de bus encuentra un error durante sus operaciones de inicio, el controlador establece un estado de error en irP, llama a IoCompleteRequest con IO_NO_INCREMENT y devuelve el error de su rutina DispatchPnP .

Si un controlador de bus requiere algún tiempo para iniciar el dispositivo, puede marcar el IRP como pendiente y devolver STATUS_PENDING.