IVdsVolume::Shrink-Methode (vds.h)
[Ab Windows 8 und Windows Server 2012 wird die COM-Schnittstelle des Virtuellen Datenträgerdiensts durch die Windows Storage Management-API abgelöst.]
Reduziert die Größe des Volumes und aller Plexes und gibt die freigegebenen Blöcke in freien Speicherplatz zurück.
Syntax
HRESULT Shrink(
[in] ULONGLONG ullNumberOfBytesToRemove,
[out] IVdsAsync **ppAsync
);
Parameter
[in] ullNumberOfBytesToRemove
Die Größe der Reduzierung in Bytes.
[out] ppAsync
Die Adresse eines IVdsAsync-Schnittstellenzeigers . VDS initialisiert die -Schnittstelle bei der Rückgabe. Aufrufer müssen die Schnittstelle freigeben. Verwenden Sie diese Schnittstelle, um die status des Vorgangs abzubrechen, abzuwarten oder abzufragen. Wenn IVdsAsync::Wait aufgerufen wird und ein erfolgreicher HRESULT-Wert zurückgegeben wird, müssen die in der VDS_ASYNC_OUTPUT-Struktur zurückgegebenen Schnittstellen durch Aufrufen der IUnknown::Release-Methode für jeden Schnittstellenzeiger freigegeben werden. Wenn Wait jedoch einen HRESULT-Fehlerwert zurückgibt oder der pHrResult-Parameter von Wait einen HRESULT-Fehlerwert empfängt, sind die Schnittstellenzeiger in der VDS_ASYNC_OUTPUT-StrukturNULL und müssen nicht freigegeben werden. Sie können HRESULT-Werte für Erfolg oder Fehler testen, indem Sie die in Winerror.h definierten Makros SUCCEEDED und FAILED verwenden.
Rückgabewert
Diese Methode kann HRESULT-Standardwerte wie E_INVALIDARG oder E_OUTOFMEMORY und VDS-spezifische Rückgabewerte zurückgeben. Es kann auch konvertierte Systemfehlercodes mithilfe des makros HRESULT_FROM_WIN32 zurückgeben. Fehler können vom VDS selbst oder vom zugrunde liegenden VDS-Anbieter stammen, der verwendet wird. Folgende Rückgabewerte sind möglich.
Rückgabecode/-wert | BESCHREIBUNG |
---|---|
|
Die Methode wurde erfolgreich abgeschlossen. |
|
Der Cache des Anbieters ist beschädigt. Dies weist auf ein Software- oder Kommunikationsproblem innerhalb eines Anbieters hin, der Informationen zu den angefügten Geräten zwischenspeichert. Der Aufrufer kann die IVdsHwProvider::Reenumerate-Methode gefolgt von der IVdsHwProvider::Refresh-Methode verwenden, um den Cache wiederherzustellen. |
|
Das Volume kann nicht verkleinert werden, da es vom Dateisystem nicht unterstützt wird. |
|
Der Vorgang wird auf Wechselmedien nicht unterstützt. |
|
Die angegebene Verkleinerungsgröße ist kleiner als die mindest zulässige Verkleinerungsgröße. |
|
Die angegebene Verkleinerungsgröße ist zu groß und führt dazu, dass das Volume kleiner als die Mindestvolumegröße ist. |
Hinweise
Diese Methode ist ein Wrapper für die IVdsVolumeShrink::Shrink-Methode . Wenn Sie IVdsVolume::Shrink aufrufen, wird der Wert des uNumberOfBytesToRemove-Parameters für die Parameter ullDesiredNumberOfReclaimableBytes und ullMinNumberOfReclaimableBytes von IVdsVolumeShrink::Shrink verwendet.
Verkleinerungs- und Erweiterungsvorgänge werden nur auf NTFS- und RAW-Volumes unterstützt.
Verwenden Sie diese Methode, um das Dateisystem und das Volume zu verkleinern. Wenn VDS das Volume nicht verkleinern kann, wird der Vorgang beendet, ohne das Dateisystem zu verkleinern.
Auf jedem Volume kann jeweils nur ein Verkleinerungs- oder Defragmentierungsvorgang ausgeführt werden. Windows Server 2008 und Windows Vista: Auf einem Computer kann jeweils nur ein Verkleinerungs- oder Defragmentierungsvorgang ausgeführt werden.
Wenn uNumberOfBytesToRemove null ist, schlägt die Methode fehl. Andernfalls rundet VDS uNumberOfBytesToRemove auf ein Vielfaches der Dateisystemclustergröße.
Implementierer müssen einen Zeiger auf die IVdsAsync-Schnittstelle für diese Methode zurückgeben, auch wenn der Aufruf keinen asynchronen Vorgang initiiert.
Sie können die IVdsVolumeShrink::QueryMaxReclaimableBytes-Methode verwenden, um die Anzahl der Bytes zu schätzen, die durch den Verkleinerungsvorgang zurückgefordert werden sollen. QueryMaxReclaimableBytes kann jedoch mehr Bytes zurückgeben, als tatsächlich verfügbar sind.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | vds.h |
Bibliothek | Uuid.lib |