sdyxz123 2023-08-02 11:51 采纳率: 36.4%
浏览 8
已结题

WDM 驱动开发相关疑问

我在WDM 一个驱动中 ,有一个PDO,然后创建了多个设备对象FDO,那么这些FDO可以不用挂在PDO上面(IoAttachDeviceToDeviceStack)吗?单独形成一个自己FDO的设备栈,WDM驱动中可以这么做吗?这样会不会不满足驱动WDM 驱动设计规范, PDO必须要有FDO

  • 写回答

2条回答 默认 最新

  • Rust Cohle 2023-08-02 12:03
    关注

    根据 Windows 驱动模型(WDM)设计规范,每个 PDO 都必须有至少一个 FDO 与之关联。这是因为 FDO 是用来处理底层硬件的操作的,而 PDO 代表了硬件设备。

    可以通过调用 loAttachDeviceToDeviceStack 将 FDO 挂载到 PDO 的设备栈上。这样做的好处是可以利用 WDM 驱动框架提供的设备栈管理、I/O 管理和电源管理等功能。

    如果你在驱动中创建了多个 FDO 对象,它们应该分别与不同的 PDO 关联。每个 FDO 都需要通过调用 loAttachDeviceToDeviceStack 将其挂载到相应的 PDO 的设备栈上。

    但请注意,根据具体的驱动需求和设计,有时也可以有一些特殊情况下的例外。但是,一般来说,为了满足 WDM 驱动模型的设计规范,PDO 必须要有 FDO。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月3日
  • 已采纳回答 8月3日
  • 修改了问题 8月2日
  • 创建了问题 8月2日