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