在总线驱动程序中启动设备

总线驱动程序在其 DispatchPnP 例程中使用以下过程启动子设备 (子 PDO) :

  1. 启动设备。

    具体步骤因设备而异。

    例如,PCI 总线驱动程序对其映射寄存器进行程序,以便在 PCI 总线上启用请求。 PnP ISA 总线驱动程序启用 PnP ISA 卡以便函数驱动程序可以访问它。

  2. 完成 IRP。

    如果总线驱动程序的启动操作成功,驱动程序会将 Irp-IoStatus.Status> 设置为 STATUS_SUCCESS并调用 IoCompleteRequest,以指定IO_NO_INCREMENT的优先级提升。 总线驱动程序从其 DispatchPnP 例程返回STATUS_SUCCESS。

    如果总线驱动程序在启动操作期间遇到错误,驱动程序会在 IRP 中设置错误状态,使用 IO_NO_INCREMENT 调用 IoCompleteRequest ,并从其 DispatchPnP 例程返回错误。

如果总线驱动程序需要一些时间来启动设备,它可以将 IRP 标记为挂起并返回STATUS_PENDING。