Metodo IVdsVdProvider::CreateVDisk (vds.h)

[A partire da Windows 8 e Windows Server 2012, l'interfaccia COM del servizio disco virtuale viene sostituita dall'API gestione archiviazione di Windows.]

Crea un disco virtuale.

Sintassi

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

Parametri

[in] VirtualDeviceType

Puntatore a una struttura VIRTUAL_STORAGE_TYPE che specifica il tipo di disco virtuale da creare.

[in] pPath

Stringa di caratteri wide con terminazione NULL contenente il nome e il percorso della directory per il file di backup da creare per il disco virtuale.

[in] pStringSecurityDescriptor

Stringa di caratteri wide con terminazione NULL contenente il descrittore di sicurezza da applicare al disco virtuale. Se questo parametro è NULL, verrà usato il descrittore di sicurezza nel token di accesso del chiamante.

[in] Flags

Maschera di bit di CREATE_VIRTUAL_DISK_FLAG valori di enumerazione che specificano la modalità di creazione del disco virtuale.

Valore Significato
CREATE_VIRTUAL_DISK_FLAG_NONE
0x00000000
Nessun flag specificato.
CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION
0x00000001
Pre-allocare tutto lo spazio fisico necessario per le dimensioni virtuali del disco virtuale. Questo flag è valido solo per un disco virtuale di dimensioni fisse.

[in] ProviderSpecificFlags

Maschera di bit di flag specifici del tipo di disco virtuale che viene creato. Questi flag sono specifici del provider. Per il provider di dischi virtuali Microsoft, questo parametro deve essere zero.

[in] Reserved

Il parametro è riservato e deve essere zero.

[in] pCreateDiskParameters

Puntatore a una struttura VDS_CREATE_VDISK_PARAMETERS che contiene i parametri di creazione del disco virtuale.

[out] ppAsync

Puntatore a un'interfaccia IVdsAsync che al completamento riceve l'interfaccia IVdsAsync per monitorare e controllare questa operazione. I chiamanti devono rilasciare l'interfaccia ricevuta al termine dell'operazione. Se il metodo IVdsAsync::Wait viene chiamato sull'interfaccia e viene restituito un valore HRESULT riuscito, le interfacce restituite nella struttura VDS_ASYNC_OUTPUT devono essere rilasciate chiamando il metodo IUnknown::Release su ogni puntatore di interfaccia. Tuttavia, se Wait restituisce un valore HRESULT non riuscito o se il parametro pHrResult di Wait riceve un valore HRESULT non riuscito, i puntatori di interfaccia nella struttura VDS_ASYNC_OUTPUT sono NULL e non devono essere rilasciati. È possibile verificare l'esito positivo o negativo dei valori HRESULT usando le macro SUCCEEDED e FAILED definite in Winerror.h.

Valore restituito

Questo metodo può restituire valori HRESULT standard, ad esempio E_INVALIDARG o E_OUTOFMEMORY e valori restituiti specifici di VDS. Può anche restituire codici di errore di sistema convertiti usando la macro HRESULT_FROM_WIN32 . Gli errori possono provenire dal VDS stesso o dal provider VDS sottostante in uso. I valori restituiti possibili includono quanto segue.

Codice restituito Descrizione
S_OK
Metodo completato correttamente.

Commenti

Le applicazioni devono inizializzare la sicurezza a livello di processo chiamando la funzione CoInitializeSecurity . Il parametro dwImpLevel deve essere impostato su RPC_C_IMP_LEVEL_IMPERSONATE.

Windows Server 2008, Windows Vista e Windows Server 2003: Queste azioni non sono necessarie fino a Windows 7 e Windows Server 2008 R2.

Se il disco virtuale con il nome file specificato non esiste, viene creato. Se il disco virtuale esiste già, il provider di dischi virtuali restituisce un puntatore di interfaccia all'oggetto disco virtuale esistente senza creare nuovamente il file.

Requisiti

   
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione vds.h
Libreria Uuid.lib

Vedi anche

IVdsVdProvider