IServerVirtualDeviceSet2::Close (VDI)

适用范围:SQL Server

Close 函数关闭 IServerVirtualDeviceSet2::Open 打开的虚拟设备集。 其结果是释放与虚拟设备关联的所有资源。 此函数返回后,IServerVirtualDeviceSet2 句柄并不起作用,它应返回到 COM。

语法

HRESULT IServerVirtualDeviceSet2::Close ();

返回值

返回值 说明
VD_E_PROTOCOL 设备仍处于打开状态。

注解

不应在关闭设备前关闭虚拟设备集。 如果出现这种情况,则返回 VD_E_PROTOCOL。 此操作会导致 Close 立即释放其对共享内存的映射。 如果服务器继续要求从虚拟设备接口返回资源的所有权,则该服务器会受到访问冲突的影响。 接口执行 SignalAbort 处理。

如果完成代理正在运行,则在返回到其调用方之前,完成所有未完成的命令。 所有未完成的命令均通过 ERROR_OPERATION_ABORTED 完成。 也就是说,为每个未完成的命令调用回调函数。

在所有情况下,包括返回错误的情况,Close 均会释放虚拟设备接口的所有资源。 从 VDI 返回的任何缓冲区和其他接口指针均无效。

请务必确保在卸载 COM 库之前完成代理已终止。 如果在完成代理返回到其调用方之前卸载该库,则进程可能会导致指令冲突。

后续步骤

有关详细信息,请参阅 SQL Server 虚拟设备接口引用概述