IVdsVdProvider::CreateVDisk 方法 (vds.h)

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

创建虚拟磁盘。

语法

HRESULT CreateVDisk(
  [in]  PVIRTUAL_STORAGE_TYPE        VirtualDeviceType,
  [in]  LPWSTR                       pPath,
  [in]  LPWSTR                       pStringSecurityDescriptor,
  [in]  CREATE_VIRTUAL_DISK_FLAG     Flags,
  [in]  ULONG                        ProviderSpecificFlags,
  [in]  ULONG                        Reserved,
  [in]  PVDS_CREATE_VDISK_PARAMETERS pCreateDiskParameters,
  [out] IVdsAsync                    **ppAsync
);

参数

[in] VirtualDeviceType

指向 VIRTUAL_STORAGE_TYPE 结构的指针,该结构指定要创建的虚拟磁盘的类型。

[in] pPath

一个 以 NULL 结尾的宽字符字符串,其中包含要为虚拟磁盘创建的后备文件的名称和目录路径。

[in] pStringSecurityDescriptor

一个 以 NULL 结尾的宽字符字符串,其中包含要应用于虚拟磁盘的安全描述符。 如果此参数为 NULL,将使用调用方访问令牌中的安全描述符。

[in] Flags

CREATE_VIRTUAL_DISK_FLAG枚举值的位掩码,用于指定虚拟磁盘的创建方式。

Value 含义
CREATE_VIRTUAL_DISK_FLAG_NONE
0x00000000
未指定任何标志。
CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION
0x00000001
预先分配虚拟磁盘的虚拟大小所需的所有物理空间。 此标志仅对固定大小的虚拟磁盘有效。

[in] ProviderSpecificFlags

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

[in] Reserved

参数是保留的,必须为零。

[in] pCreateDiskParameters

指向包含虚拟磁盘创建参数 的VDS_CREATE_VDISK_PARAMETERS 结构的指针。

[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
该方法已成功完成。

备注

应用程序必须通过调用 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

另请参阅

IVdsVdProvider