WDF 体系结构
WDF 为驱动程序提供基于对象的接口。 框架定义的对象接口包括:
对象方法
方法是驱动程序可以调用的函数,以对对象执行操作或获取或设置对象属性。 方法名为 WdfObjectAction,其中 Object 描述对象, Action 指示函数的作用。 例如, WdfDeviceCreate 创建设备对象。
对象事件回调函数
事件回调函数是驱动程序提供的函数。 每个事件回调函数都与对象上可能发生的特定事件相关联。 当发生关联的事件时,框架会调用事件回调函数。 按照约定,事件回调函数的占位符称为 EvtObjectEvent,不过你可以在驱动程序中选择的任何名称来命名这些回调。 例如,驱动程序注册 EvtDeviceD0Entry 事件回调,以便在其设备进入工作状态时收到通知。
对象属性
属性是存储在 对象中的值,驱动程序可以 获取 (即获取) 并 设置 (即更改) 。 在许多情况下,属性直接映射到相应的 WDM 对象中的字段。 无法失败的属性命名为 Wdf对象获取值和 Wdf对象设置值,可以失败的属性命名为 Wdf对象检索值和 Wdf对象赋值。
对象 描述 对象, Value 标识函数设置或返回的数据。 例如, WdfDeviceGetDriver 返回与设备对象关联的驱动程序对象的句柄。
对象句柄
基于框架的驱动程序永远不会直接访问框架对象。 相反,驱动程序接收对象句柄,该句柄可以传递给对象的方法。
框架定义了基于框架的驱动程序使用的几种对象类型:
框架驱动程序对象表示每个驱动程序。
框架设备对象表示驱动程序支持的每个设备。
框架队列对象 表示接收设备 I/O 请求的 I/O 队列。
框架请求对象 表示每个 I/O 队列接收的 I/O 请求。
有关框架定义的所有对象的列表,请参阅 框架对象的摘要。