Compartilhar via


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

[Começando com Windows 8 e Windows Server 2012, a interface COM do Serviço de Disco Virtual é substituída pela API de Gerenciamento de Armazenamento do Windows.]

Cria um disco virtual.

Sintaxe

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

Um ponteiro para uma estrutura VIRTUAL_STORAGE_TYPE que especifica o tipo de disco virtual a ser criado.

[in] pPath

Uma cadeia de caracteres largos terminada em NULL que contém o nome e o caminho do diretório para o arquivo de backup a ser criado para o disco virtual.

[in] pStringSecurityDescriptor

Uma cadeia de caracteres largos terminada em NULL que contém o descritor de segurança a ser aplicado ao disco virtual. Se esse parâmetro for NULL, o descritor de segurança no token de acesso do chamador será usado.

[in] Flags

Uma máscara de bits de CREATE_VIRTUAL_DISK_FLAG valores de enumeração especificando como o disco virtual deve ser criado.

Valor Significado
CREATE_VIRTUAL_DISK_FLAG_NONE
0x00000000
Nenhum sinalizador é especificado.
CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION
0x00000001
Pré-alocar todo o espaço físico necessário para o tamanho virtual do disco virtual. Esse sinalizador é válido apenas para um disco virtual de tamanho fixo.

[in] ProviderSpecificFlags

Uma máscara de bits de sinalizadores que são específicas para o tipo de disco virtual que está sendo criado. Esses sinalizadores são específicos do provedor. Para o provedor de disco virtual da Microsoft, esse parâmetro deve ser zero.

[in] Reserved

O parâmetro é reservado e deve ser zero.

[in] pCreateDiskParameters

Um ponteiro para uma estrutura VDS_CREATE_VDISK_PARAMETERS que contém os parâmetros de criação de disco virtual.

[out] ppAsync

Um ponteiro para uma interface IVdsAsync que, após a conclusão bem-sucedida, recebe a interface IVdsAsync para monitorar e controlar essa operação. Os chamadores devem liberar a interface recebida quando terminarem de usá-la. Se o método IVdsAsync::Wait for chamado na interface e um valor HRESULT bem-sucedido for retornado, as interfaces retornadas na estrutura VDS_ASYNC_OUTPUT deverão ser liberadas chamando o método IUnknown::Release em cada ponteiro de interface. No entanto, se Wait retornar um valor HRESULT de falha ou se o parâmetro pHrResult de Wait receber um valor HRESULT de falha, os ponteiros de interface na estrutura VDS_ASYNC_OUTPUT serão NULL e não precisarão ser liberados. Você pode testar valores HRESULT com êxito ou falha usando as macros SUCCEEDED e FAILED definidas em Winerror.h.

Retornar valor

Esse método pode retornar valores HRESULT padrão, como E_INVALIDARG ou E_OUTOFMEMORY, e valores retornados específicos do VDS. Ele também pode retornar códigos de erro do sistema convertidos usando a macro HRESULT_FROM_WIN32 . Os erros podem se originar do próprio VDS ou do provedor de VDS subjacente que está sendo usado. Os possíveis valores retornados incluem o seguinte.

Código de retorno Descrição
S_OK
O método foi concluído com sucesso.

Comentários

Os aplicativos devem inicializar a segurança em todo o processo chamando a função CoInitializeSecurity . O parâmetro dwImpLevel deve ser definido como RPC_C_IMP_LEVEL_IMPERSONATE.

Windows Server 2008, Windows Vista e Windows Server 2003: Essas ações não são necessárias até o Windows 7 e o Windows Server 2008 R2.

Se o disco virtual com o nome de arquivo especificado não existir, ele será criado. Se o disco virtual já existir, o provedor de disco virtual retornará um ponteiro de interface para o objeto de disco virtual existente sem recriar o arquivo.

Requisitos

   
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho vds.h
Biblioteca Uuid.lib

Confira também

IVdsVdProvider