WDF 体系结构

WDF 为驱动程序提供基于对象的接口。 框架定义的对象接口包括:

对象方法
方法是驱动程序可以调用的函数,以对对象执行作或获取或设置对象属性。 方法名为 WdfObjectAction,其中 Object 描述对象和 Action 指示函数的作用。 例如, WdfDeviceCreate 创建设备对象。

对象事件回调函数
事件回调函数是驱动程序提供的函数。 每个事件回调函数都与对象上可能发生的特定事件相关联。 框架在发生关联事件时调用事件回调函数。 按照约定,事件回调函数的占位符称为 EvtObjectEvent,不过你可以将这些回调命名为驱动程序中选择的任何内容。 例如,驱动程序注册 EvtDeviceD0Entry 事件回调,以便在设备进入工作状态时收到通知。

对象属性
属性是存储在对象中的值,驱动程序可以 获取 (即获取)和 设置 (即更改)。 在许多情况下,属性直接映射到相应 WDM 对象中的字段。 不能失败的属性名为 Wdf对象获取Wdf对象设置,可能失败的属性名为 Wdf对象检索Wdf对象分配对象 描述对象, 标识函数设置或返回的数据。 例如, WdfDeviceGetDriver 返回与设备对象关联的驱动程序对象的句柄。

对象句柄
基于框架的驱动程序永远不会直接访问框架对象。 相反,驱动程序接收对象句柄,从而可以将其传递给对象的方法。

该框架定义了基于框架的驱动程序使用的多个对象类型:

  • 框架驱动程序对象表示每个驱动程序。

  • 框架设备对象表示驱动程序支持的每个设备。

  • 框架队列对象 表示接收设备的 I/O 请求的 I/O 队列。

  • 框架请求对象 表示每个 I/O 队列接收的 I/O 请求。

有关框架定义的所有对象的列表,请参阅 框架对象的摘要