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 |