为什么我们需要为连接到总线的单个设备创建两个设备对象(PDO和FDO)?

时间:2013-10-16 09:05:38

标签: windows wdm

在Windows中我是新的,在阅读WDM驱动程序时,我遇到了关于设备对象(PDO和FDO)。我无法想象为什么我们需要2个不同的设备对象,因为在加载驱动程序之后为什么我们再次在ADDDevice例程中创建FDO 。我们可以在那里使用PDO,因为它代表相同的设备。

1 个答案:

答案 0 :(得分:2)

PDO和FDO必须是单独的对象,因为它们使用不同的设备驱动程序。例如,PCI NIC设备将具有由PCI总线的设备驱动程序生成的PDO,以及由NIC的设备驱动程序生成的FDO。

有时,总线和设备会共享相同的驱动程序,在这种情况下,您不需要FDO。您可以使用原始PDO,它将PDO和FDO组合在一个设备对象中。

有关图片,请参阅MSDN中的Example WDM Device Stack;有关简短说明,请参阅PDOs, part 1