IVdsOpenVDisk::Attach 方法 (vds.h)

[从Windows 8和Windows Server 2012开始,虚拟磁盘服务 COM 接口由 Windows 存储管理 API 取代。]

附加虚拟磁盘。

语法

HRESULT Attach(
  [in]  LPWSTR                   pStringSecurityDescriptor,
  [in]  ATTACH_VIRTUAL_DISK_FLAG Flags,
  [in]  ULONG                    ProviderSpecificFlags,
  [in]  ULONG                    TimeoutInMs,
  [out] IVdsAsync                **ppAsync
);

参数

[in] pStringSecurityDescriptor

包含虚拟磁盘的安全描述符的字符串。 如果未指定,则使用的安全描述符为:“D:P (A;;Ga;;;Windows 7 上的 WD) “和”D:P (A;;Ga;;;WD) (A;;Ga;;;Windows 8.1 及更高版本上的 AC) ”。

[in] Flags

ATTACH_VIRTUAL_DISK_FLAG枚举值的位掩码,用于指定虚拟磁盘的附加方式。 可能的值包括以下值。

含义
ATTACH_VIRTUAL_DISK_FLAG_NONE
0x00000000
未指定任何标志。
ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY
0x00000001
将虚拟磁盘附加为只读。
ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER
0x00000002
在附加的虚拟磁盘上装载所有卷,而无需为其分配驱动器号。
ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME
0x00000004
VDS 服务会自动设置此标志,以便 VHD 保持附加状态,直到调用 IVdsOpenVDisk::D etach 方法来分离它。
ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST
0x00000008
保留。 请勿使用。

[in] ProviderSpecificFlags

特定于所附加虚拟磁盘类型的标志的位掩码。 这些标志特定于提供程序。 对于 Microsoft 虚拟磁盘提供程序,此参数必须为零。

[in] TimeoutInMs

此参数留待将来使用。

[out] ppAsync

指向 IVdsAsync 接口的指针,该接口在成功完成后接收 IVdsAsync 接口以监视和控制此操作。 调用方必须在使用完接口后释放收到的接口。 如果在接口上调用 IVdsAsync::Wait 方法并返回成功 HRESULT 值,则必须通过在每个接口指针上调用 IUnknown::Release 方法释放VDS_ASYNC_OUTPUT结构中返回的接口。 但是,如果 Wait 返回失败的 HRESULT 值,或者如果 WaitpHrResult 参数收到失败的 HRESULT 值,则 VDS_ASYNC_OUTPUT 结构中的接口指针为 NULL,不需要释放。 可以使用 Winerror.h 中定义的 SUCCEEDEDFAILED 宏测试成功或失败的 HRESULT 值。

返回值

此方法可以返回标准 HRESULT 值,例如E_INVALIDARG或E_OUTOFMEMORY,以及 特定于 VDS 的返回值。 它还可以使用 HRESULT_FROM_WIN32 宏返回转换的系统错误代码。 错误可能源自 VDS 本身或正在使用的基础 VDS 提供程序 。 可能的返回值包括以下内容。

返回代码 说明
S_OK
该方法已成功完成。

备注

附加虚拟磁盘后,调用方可以收到以下一条或所有通知:

  • 如果呼叫者已注册 VDS 通知,则调用方将收到磁盘到达通知。 有关详细信息,请参阅 VDS 通知
  • 如果呼叫者已注册 PnP 通知,则调用方将收到 PnP 磁盘到达通知。 有关详细信息,请参阅 RegisterDeviceNotification
应用程序必须通过调用 CoInitializeSecurity 函数来初始化进程范围的安全性。 dwImpLevel 参数应设置为 RPC_C_IMP_LEVEL_IMPERSONATE

Windows Server 2008、Windows Vista 和 Windows Server 2003: 在 Windows 7 和 Windows Server 2008 R2 之前,不需要执行这些操作。

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 vds.h
Library Uuid.lib

另请参阅

IVdsOpenVDisk