IWDFObject::AssignContext 方法(wudfddi.h)

[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 没有将新功能添加到 UMDF 1,并且对较新版本的 Windows 10 上的 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅 UMDF入门 。]

AssignContext 方法为对象注册上下文和驱动程序提供的清理回调函数。

语法

HRESULT AssignContext(
  [in, optional] __drv_aliasesMem IObjectCleanup *pCleanupCallback,
  [in, optional] __drv_aliasesMem void           *pContext
);

参数

[in, optional] pCleanupCallback

指向 IObjectCleanup 接口的指针,该接口包含清理回调函数,该函数在对象变得无效时对对象执行清理作。 此参数是可选的。 如果驱动程序在清理对象时不需要通知,驱动程序可以传递 NULL

[in, optional] pContext

指向要注册的上下文的指针。 NULL 是有效的上下文。

返回值

如果作成功,则 AssignContext 返回S_OK。 否则,此方法返回在 Winerror.h 中定义的错误代码之一。

言论

驱动程序调用 AssignContext 注册上下文,并在对象无效时请求通知。 在 AssignContext 调用中,驱动程序将指针传递给 pCleanupCallback 参数中的 IObjectCleanup 接口,以注册 IObjectCleanup。 请注意,框架在内部保留对提供的 IObjectCleanup 接口的引用,而对象有效。 当对象无效时,框架将调用 IObjectCleanup::OnCleanup 方法来通知驱动程序。 在调用 IObjectCleanup::OnCleanup后,框架会自动释放对提供的 IObjectCleanup 的引用。

在任何给定时间,只有一个与每个对象实例关联的上下文可以存在。 尝试注册其他上下文失败。

上下文只能与处于有效状态的对象相关联。 例如,尝试将上下文与正在删除过程中的对象关联失败。

由于上下文不是组件对象模型 (COM) 接口,因此驱动程序不得将上下文视为此类上下文。 例如,驱动程序无法在上下文中调用 AddRef 方法。

IWDFObject::RetrieveContext 方法可用于检索以前 通过 assignContext注册的上下文。

例子

有关如何使用 AssignContext 方法的代码示例,请参阅 IWDFIoTarget::FormatRequestForWrite

要求

要求 价值
终止支持 在 UMDF 2.0 及更高版本中不可用。
目标平台 桌面
最低 UMDF 版本 1.5
标头 wudfddi.h (包括 Wudfddi.h)
DLL WUDFx.dll

另请参阅

IObjectCleanup

IObjectCleanup::OnCleanup

IWDFObject

IWDFObject::RetrieveContext