Metodo IVdsVolume::Shrink (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.
Riduce le dimensioni del volume e tutti i plessi e restituisce gli extent rilasciati per liberare spazio.
Sintassi
HRESULT Shrink(
[in] ULONGLONG ullNumberOfBytesToRemove,
[out] IVdsAsync **ppAsync
);
Parametri
[in] ullNumberOfBytesToRemove
Dimensioni della riduzione dei byte.
[out] ppAsync
Indirizzo di un puntatore dell'interfaccia IVdsAsync . VDS inizializza l'interfaccia in caso di restituzione. I chiamanti devono rilasciare l'interfaccia. Usare questa interfaccia per annullare, attendere o eseguire query sullo stato dell'operazione. Se viene chiamato IVdsAsync::Wait 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/valore restituito | Descrizione |
---|---|
|
Metodo completato correttamente. |
|
La cache del provider è danneggiata. Ciò indica un problema di comunicazione o software all'interno di un provider che memorizza nella cache le informazioni sui dispositivi collegati. Il chiamante può usare il metodo IVdsHwProvider::Reenumerate seguito dal metodo IVdsHwProvider ::Refresh per ripristinare la cache. |
|
Il volume non può essere ridotto perché il file system non lo supporta. |
|
L'operazione non è supportata su supporti rimovibili. |
|
La dimensione di compattazione specificata è minore della dimensione minima di compattazione consentita. |
|
La dimensione di compattazione specificata è troppo grande e causerà che il volume sia minore delle dimensioni minime del volume. |
Commenti
Questo metodo è un wrapper per il metodo IVdsVolumeShrink::Shrink . Se si chiama IVdsVolume::Shrink, il valore del parametro uNumberOfBytesToRemove viene usato per i parametri ullDesiredNumberOfReclaimableBytes e ullMinNumberOfReclaimableBytes di IVdsVolumeShrink::Shrink.
Le operazioni di compattazione ed estensione sono supportate solo nei volumi NTFS e RAW.
Usare questo metodo per compattare il file system e il volume. Se VDS non riesce a compattare il volume, arresta l'operazione senza compattare il file system.
È possibile eseguire una sola operazione di compattazione o deframmentazione alla volta in ogni volume. Windows Server 2008 e Windows Vista: È possibile eseguire una sola operazione di compattazione o deframmentazione alla volta in un computer.
Se uNumberOfBytesToRemove è zero, il metodo ha esito negativo. In caso contrario, VDS esegue l'rounding uNumberOfBytesToRemove a più dimensioni del cluster del file system.
Gli implementatori devono restituire un puntatore all'interfaccia IVdsAsync per questo metodo, anche se la chiamata non avvia un'operazione asincrona.
È possibile usare il metodo IVdsVolumeShrink::QueryMaxReclaimableBytes per stimare il numero di byte da recuperare dall'operazione di compattazione. Tuttavia, QueryMaxReclaimableBytes può restituire più byte di quanto siano effettivamente disponibili.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | vds.h |
Libreria | Uuid.lib |