WDM设备栈

图 1一块USB主控制器卡(主控芯片为VIA VL805)

图中的板卡包含USB主控制器(USB Host Controller)、USB集线器(USB Hub),这里USB集线器扩展了4个USB端口(USB Port)。

PCI总线(由于PCIE总线与PCI总线软件兼容,故软件层面只讨论PCI总线)、USB主控制器、USB集线器均为总线设备(Bus Device),驱动它们的驱动程序称为总线驱动程序(Bus Driver),由微软Windows操作系统提供。

驱动PCI总线的程序为PCI总线驱动程序(由微软提供),PCI总线驱动程序包含了一个PDO和FDO,PDO由根总线驱动程序(The root bus driver,由微软提供)创建,FDO由PCI总线驱动程序创建。PCI总线驱动程序的设备栈如下图所示:

图 2PCI总线驱动程序的设备栈

当驱动程序处理PnP或电源IRP时,它们必须将每个IRP沿着设备栈一路传递到PDO及其相关的总线驱动程序。

总之,

  1. 根总线驱动程序为PCI总线创建PDO,PCI总线驱动程序创建代表自身的FDO,并将此FDO附加到根总线驱动程序创建的PDO之上;
  2. PCI总线驱动程序枚举插入到PCI总线上的设备,为这些设备创建PDO,PCI总线上的设备驱动程序创建代表自身的FDO,并将此FDO附加到PCI总线驱动程序创建的PDO之上。

MSDN有child device的概念,在设备树那章有描述;ACPI是Root Device的子设备,PCI Bus、ACPI Fan、ACPI Battery是ACPI的子设备,USB Controller、PCI to ISA Bridge、SCSI Adapter是PCI Bus的子设备。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值