框架对象简介

WDF Windows驱动程序框架 (为) 提供的接口是基于对象的。 框架定义多个 对象。 这些对象导出 () 和属性 (驱动程序) 访问的数据。 框架对象还会 启动事件,驱动程序可以通过提供事件回调函数来支持这些事件。

基于框架的驱动程序永远不会直接访问框架对象。 相反,驱动程序通过句柄 引用对象,驱动程序将句柄作为输入传递给对象方法。

所有框架对象具有以下特征:

引用计数
框架维护对每个对象的引用数的计数。 框架创建对象时,它将对象的引用计数设置为 1。 框架使用完对象后,会缩小引用计数。 在引用计数减为零之前,框架无法删除对象,因此驱动程序可以通过递增对象的引用计数来阻止删除对象。

上下文空间
基于框架的驱动程序可以为每个驱动程序接收或创建的框架对象创建特定于对象的上下文空间。 驱动程序应在对象的上下文空间中存储所有特定于对象的数据。 有关上下文空间详细信息,请参阅 框架对象上下文空间

删除回调函数
驱动程序可以注册框架在删除对象时调用的回调函数。 回调函数可以删除驱动程序分配的资源,例如特定于对象的内存分配。 有关这些回调函数的信息,请参阅 框架对象生命周期

父对象
所有框架对象都可以具有父对象。 框架为大多数对象指定默认父对象。 当驱动程序创建对象时,它可以指定重写对象的默认父对象的父对象。 若要指定对象的父对象,驱动程序需要设置对象的 WDF _ OBJECT _ ATTRIBUTES结构的 ParentObject 成员。 (对于一些对象类型,驱动程序不能重写默认父对象。) 当框架或驱动程序删除父对象时,框架也会删除父对象的子级。

有关 WDF 定义的所有对象的概述,请参阅框架 对象的摘要