Compartir a través de


Método IVdsVdProvider::CreateVDisk (vds.h)

[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]

Crea un disco virtual.

Sintaxis

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
);

Parámetros

[in] VirtualDeviceType

Puntero a una estructura de VIRTUAL_STORAGE_TYPE que especifica el tipo de disco virtual que se va a crear.

[in] pPath

Cadena de caracteres anchos terminada en NULL que contiene el nombre y la ruta de acceso del directorio para el archivo de respaldo que se va a crear para el disco virtual.

[in] pStringSecurityDescriptor

Cadena de caracteres anchos terminada en NULL que contiene el descriptor de seguridad que se va a aplicar al disco virtual. Si este parámetro es NULL, se usará el descriptor de seguridad en el token de acceso del autor de la llamada.

[in] Flags

Máscara de bits de CREATE_VIRTUAL_DISK_FLAG valores de enumeración que especifican cómo se va a crear el disco virtual.

Value Significado
CREATE_VIRTUAL_DISK_FLAG_NONE
0x00000000
No hay marcas especificadas.
CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION
0x00000001
Asigne previamente todo el espacio físico necesario para el tamaño virtual del disco virtual. Esta marca solo es válida para un disco virtual de tamaño fijo.

[in] ProviderSpecificFlags

Máscara de bits de marcas que son específicas del tipo de disco virtual que se está creando. Estas marcas son específicas del proveedor. Para el proveedor de discos virtuales de Microsoft, este parámetro debe ser cero.

[in] Reserved

El parámetro está reservado y debe ser cero.

[in] pCreateDiskParameters

Puntero a una estructura de VDS_CREATE_VDISK_PARAMETERS que contiene los parámetros de creación del disco virtual.

[out] ppAsync

Puntero a una interfaz IVdsAsync que, tras la finalización correcta, recibe la interfaz IVdsAsync para supervisar y controlar esta operación. Los autores de llamadas deben liberar la interfaz recibida cuando terminen con ella. Si se llama al método IVdsAsync::Wait en la interfaz y se devuelve un valor HRESULT correcto, las interfaces devueltas en la estructura de VDS_ASYNC_OUTPUT deben liberarse llamando al método IUnknown::Release en cada puntero de interfaz. Sin embargo, si Wait devuelve un valor HRESULT de error o si el parámetro pHrResult de Wait recibe un valor HRESULT de error, los punteros de interfaz de la estructura VDS_ASYNC_OUTPUT son NULL y no es necesario liberar. Puede probar los valores HRESULT correctos o erróneos mediante las macros SUCCEEDED y FAILED definidas en Winerror.h.

Valor devuelto

Este método puede devolver valores HRESULT estándar, como E_INVALIDARG o E_OUTOFMEMORY, y valores devueltos específicos de VDS. También puede devolver códigos de error del sistema convertidos mediante la macro HRESULT_FROM_WIN32 . Los errores se pueden originar en VDS en sí o en el proveedor de VDS subyacente que se está usando. Entre los posibles valores devueltos se incluyen los siguientes.

Código devuelto Descripción
S_OK
El método se completó correctamente.

Comentarios

Las aplicaciones deben inicializar la seguridad de todo el proceso mediante una llamada a la función CoInitializeSecurity . El parámetro dwImpLevel debe establecerse en RPC_C_IMP_LEVEL_IMPERSONATE.

Windows Server 2008, Windows Vista y Windows Server 2003: Estas acciones no son necesarias hasta Windows 7 y Windows Server 2008 R2.

Si el disco virtual con el nombre de archivo especificado no existe, se crea. Si el disco virtual ya existe, el proveedor de discos virtuales devuelve un puntero de interfaz al objeto de disco virtual existente sin volver a crear el archivo.

Requisitos

   
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado vds.h
Library Uuid.lib

Consulte también

IVdsVdProvider