Поделиться через


Запуск устройства в драйвере шины

Драйвер автобуса запускает дочернее устройство (дочернее PDO) с помощью следующей процедуры DispatchPnP :

  1. Запустите устройство.

    Конкретные шаги зависят от устройства.

    Например, драйвер шины PCI программирует свои регистры сопоставления для включения запросов на шине PCI. Драйвер Шины PnP ISA включает PnP ISA карта, чтобы драйвер функции мог получить к нему доступ.

  2. Завершите IRP.

    Если запуск водителя автобуса был успешным, водитель устанавливает Irp-IoStatus.Status> в значение STATUS_SUCCESS и вызывает IoCompleteRequest, указывая приоритет повышения IO_NO_INCREMENT. Водитель автобуса возвращает STATUS_SUCCESS из своей процедуры DispatchPnP .

    Если во время запуска водитель автобуса сталкивается с ошибкой, он устанавливает состояние ошибки в IRP, вызывает IoCompleteRequest с IO_NO_INCREMENT и возвращает ошибку из своей подпрограммы DispatchPnP .

Если водителю автобуса требуется некоторое время для запуска устройства, он может пометить IRP как ожидающее и вернуть STATUS_PENDING.