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 |