WDF简化了PnP和电源管理:
WDF driver不用实现复杂逻辑来跟踪PnP和电源状态。
framework支持了状态机管理PnP和电源状态,通过一系列事件通知驱动对设备采取行动。
WDF对PnP和电源管理的设计:
1.驱动不应该处理及相应所有事件,而是"opt in"处理设备相关事件,其余事件由framework处理。
2.WDF行为要良好定义及可预测:由一个协议来定义驱动的责任。
3.events要基于核心的状态转换:电源启动,电源关闭(PnP stop action唤起了core power-down event和releasehardware event)
4.PnP和电源管理events要和良好定义的任务相关:驱动不应该通过跟踪系统状态来决定如何响应。
5.framework应该提供默认行为,包括:
资源重平衡,停止设备,移除设备,弹出设备,快速恢复,关闭空闲设备,唤醒设备
6.驱动能够覆盖任何默认行为
7.PnP和电源管理要和Framework其他部分关联:如I/O请求流控制
8.framework应该支持简易和复杂实现:简易任务应该容易实现,也能扩展处理复杂任务
9.framework应该让驱动能用自定义的动作处理状态变化:WDF支持self-managed I/O(和queued I/O或state change事件无关)
目的:尽量减少PnP和电源管理的代码。
WDF driver不用实现复杂逻辑来跟踪PnP和电源状态。
framework支持了状态机管理PnP和电源状态,通过一系列事件通知驱动对设备采取行动。
WDF对PnP和电源管理的设计:
1.驱动不应该处理及相应所有事件,而是"opt in"处理设备相关事件,其余事件由framework处理。
2.WDF行为要良好定义及可预测:由一个协议来定义驱动的责任。
3.events要基于核心的状态转换:电源启动,电源关闭(PnP stop action唤起了core power-down event和releasehardware event)
4.PnP和电源管理events要和良好定义的任务相关:驱动不应该通过跟踪系统状态来决定如何响应。
5.framework应该提供默认行为,包括:
资源重平衡,停止设备,移除设备,弹出设备,快速恢复,关闭空闲设备,唤醒设备
6.驱动能够覆盖任何默认行为
7.PnP和电源管理要和Framework其他部分关联:如I/O请求流控制
8.framework应该支持简易和复杂实现:简易任务应该容易实现,也能扩展处理复杂任务
9.framework应该让驱动能用自定义的动作处理状态变化:WDF支持self-managed I/O(和queued I/O或state change事件无关)
目的:尽量减少PnP和电源管理的代码。