我有个设备上面有 电池 风扇 LED灯,我想写一个windows 驱动 ,这个驱动里 能操作上面的硬件设备,。
问题是关于驱动模型中, 我是一个driver驱动里就创建一个device object 通过这个device 再去操作 上面这些硬件? 还是一个driver里创建多个device object。每个device都对应具体的一个硬件设备? 然后分别去操作这些device,应该怎么选呢?
第一种:
FDO(风扇) FDO(LED) FDO(电池)
PDO(风扇) PDO(LED) PDO(电池)
第二种:
FDO(风扇 LED 电池)
PDO(风扇 LED 电池)
第三种:
FDO(风扇) FDO(LED) FDO(电池)
PDO(风扇 LED 电池)
第二种可以 只有一个设备堆栈,对IRP 处理没有延迟和效率问题
第一种和第三种 有多个设备对象堆栈,面对IRP 穿越延迟效率问题(不知影响是否可以忽略不计) ,但是这两种逻辑清晰
该如何选择呢? 希望写清楚你选择的原因和理由