Condividi tramite


Metodo IVdsOpenVDisk::Compact (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.

Compatta il disco virtuale per ridurre le dimensioni fisiche del file di backup.

Sintassi

HRESULT Compact(
  [in]  COMPACT_VIRTUAL_DISK_FLAG Flags,
  [in]  ULONG                     Reserved,
  [out] IVdsAsync                 **ppAsync
);

Parametri

[in] Flags

Valore di enumerazione COMPACT_VIRTUAL_DISK_FLAG che specifica la modalità di compattazione del disco virtuale. Deve essere impostato su COMPACT_VIRTUAL_DISK_FLAG_NONE.

[in] Reserved

Questo parametro è riservato per l'uso del sistema.

[out] ppAsync

Puntatore a un'interfaccia IVdsAsync che al termine del 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 in ogni puntatore dell'interfaccia. Tuttavia, se Wait restituisce un valore HRESULT non riuscito o se il parametro pHrResultdiWait riceve un valore HRESULT non riuscito, i puntatori di interfaccia nella struttura VDS_ASYNC_OUTPUT sono NULL e non devono essere rilasciati. È possibile testare i valori HRESULT di esito positivo o negativo usando le macro SUCCESSED 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 derivare da VDS stesso o dal provider VDS sottostante usato. I valori restituiti possibili includono quanto segue.

Codice restituito Descrizione
S_OK
Metodo completato correttamente.

Commenti

Un disco virtuale può essere compattato solo se si trova in uno degli stati seguenti:

  • Scollegato (modalità offline)
  • Collegato e aperto con accesso in sola lettura (modalità online)
Se si trova in qualsiasi altro stato, l'operazione compatta ha esito negativo.

Il disco virtuale deve essere un disco virtuale espandibile (denominato anche dinamico) o disco virtuale diverso.

L'operazione può essere interrotta e eseguita nuovamente in un secondo momento. Se l'operazione viene interrotta e il file di backup viene riaperto, le dimensioni del file potrebbero essere ridotte quando il file viene aperto.

L'operazione può essere a elevato utilizzo di CPU o I/O oppure entrambi, a seconda della quantità di dischi virtuali e del numero di blocchi inutilizzati che richiedono la manipolazione.

Questo metodo riduce le dimensioni del file dell'archivio di backup del disco virtuale recuperando spazio inutilizzato. Se questo metodo viene chiamato per un disco virtuale scollegato, può recuperare spazio solo nel file che non è mai stato usato per scrivere dati. Se viene chiamato per un disco virtuale collegato e aperto con accesso di sola lettura, è in grado di recuperare spazio usato una volta, ma è stato liberato in seguito. La chiamata a questo metodo per un disco virtuale collegato e aperto con l'accesso di sola lettura recupera la quantità massima di spazio disponibile nel file dell'archivio di backup.

Requisiti

Requisito Valore
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

IVdsOpenVDisk