总线驱动程序

总线驱动程序为总线控制器、适配器或网桥提供服务 (请参阅) 可能的驱动程序层图。 Microsoft 为最常见的总线(例如 PCI、PnpISA、SCSI 和 USB)提供总线驱动程序。 其他总线驱动程序可由 IHV 或 OEM 提供。 总线驱动程序是必需的驱动程序;计算机上的每个总线类型都有一个总线驱动程序。 如果计算机上有多个相同类型的总线,则总线驱动程序可以为多个总线提供服务。

总线驱动程序的主要职责是:

  • 枚举其总线上的设备。

  • 响应即插即用 IRP 和电源管理 IRP。

  • 对某些) 总线 (进行多路复用访问。

  • 一般地管理其总线上的设备。

总线驱动程序本质上是 函数驱动程序 ,也枚举子级。

在枚举期间,总线驱动程序标识其总线上的设备并为其创建设备对象。 (有关设备对象的信息,请参阅 设备对象和设备堆栈。) 总线驱动程序用于标识连接的设备的方法取决于特定的总线。

总线驱动程序代表其总线上的设备执行某些操作,包括访问设备寄存器以物理方式更改设备的电源状态。 例如,当设备进入睡眠状态时,总线驱动程序将设备寄存器设置为正确的设备电源状态。

但请注意,总线驱动程序不处理连接到其总线的子设备的读取和写入请求。 对子设备的读取和写入请求由子设备的 函数驱动程序处理。 仅当子设备在 原始模式下 使用时,父总线驱动程序才会处理设备的读取和写入操作。

由于总线驱动程序充当其控制器、适配器或网桥的功能驱动程序,因此它还管理这些组件的设备电源策略。

总线驱动程序可以作为驱动程序/微型驱动程序对实现,就像 SCSI 端口/微型端口驱动程序对驱动 SCSI 主机总线适配器的方式一样, (HBA) 。 在此类驱动程序对中,微型驱动程序链接到第二个驱动程序,即 DLL。