IVdsVolume::Extend-Methode (vds.h)
[Ab Windows 8 und Windows Server 2012 wird die COM-Schnittstelle des Virtuellen Datenträgerdiensts durch die Windows Storage Management-API ersetzt.]
Erweitert die Größe des aktuellen Volumes, indem jedem Member jedes Plexs Datenträgerausdehnungen hinzugefügt werden.
Syntax
HRESULT Extend(
[in] VDS_INPUT_DISK *pInputDiskArray,
[in] LONG lNumberOfDisks,
[out] IVdsAsync **ppAsync
);
Parameter
[in] pInputDiskArray
Zeiger auf ein Array von VDS_INPUT_DISK Strukturen; eine Struktur für jeden Datenträger.
[in] lNumberOfDisks
Die Gesamtzahl der Datenträger im Volume. Aufrufer können null übergeben, wenn die Volumeplexes genügend Speicherplatz zum Erweitern des Volumes enthalten. pInputDiskArray muss NULL sein.
[out] ppAsync
Die Adresse eines IVdsAsync-Schnittstellenzeigers , der von VDS bei der Rückgabe initialisiert wird. Aufrufer müssen die Schnittstelle freigeben. Verwenden Sie diesen Zeiger, um den Status des Vorgangs abzubrechen, abzuwarten oder abzufragen. Wenn Sie die IVdsAsync::Wait-Methode für diese Schnittstelle aufrufen und ein erfolgreicher HRESULT-Wert zurückgegeben wird, müssen Sie die in der VDS_ASYNC_OUTPUT-Struktur zurückgegebenen Schnittstellen freigeben, indem Sie die IUnknown::Release-Methode für jeden Schnittstellenzeiger aufrufen. Wenn Wait jedoch einen Fehler-HRESULT-Wert zurückgibt oder wenn der pHrResult-Parameter von Wait einen Fehler-HRESULT-Wert empfängt, sind die Schnittstellenzeiger in der VDS_ASYNC_OUTPUT Struktur NULL und müssen nicht freigegeben werden. Sie können mit den in Winerror.h definierten Makros SUCCEEDED und FAILED auf Erfolg oder Fehler HRESULT-Werte testen.
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 HRESULT_FROM_WIN32-Makros 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 ist erfolgreich angetreten. |
|
Das Volume kann nicht erweitert werden, da das Dateisystem auf dem Volume den Vorgang nicht unterstützt. |
|
Es ist nicht genügend Speicherplatz vorhanden, um das Volume zu erweitern. |
|
Das Volume ist nicht fehlerfrei. |
Bemerkungen
Diese Methode erweitert ein einfaches Volume auf demselben Datenträger oder erstellt ein übergreifendes Volume, indem das Volume auf mehrere Datenträger erweitert wird. Aufrufer können ein Volume auf einem Basisdatenträger erweitern, die Datenträgerausdehnung muss jedoch mit dem Volume zusammenhängend sein.
VDS erweitert das Dateisystem automatisch auf die erweiterte Volumegröße. Das Dateisystem muss diesen Vorgang unterstützen. VDS erweitert das Dateisystem, aber nicht das Volume, wenn ein Aufrufer die zu verwendenden Ausdehnungen nicht angeben kann.
Erweitern und Verkleinern werden nur auf NTFS- und RAW-Volumes unterstützt.
VDS wendet beim Erweitern eines Volumes die folgenden Regeln an:
- Für einfache und übergreifende Plextypen erweitert VDS das einzige Element des Plexs um alle Datenträgerausdehnungen, die nicht bereits zu einem anderen Plex beitragen – unabhängig davon, ob sich der Umfang auf demselben Datenträger befindet oder nicht. VDS verwendet Datenträgerausdehnungen in der vom Aufrufer angegebenen Reihenfolge, wobei der Memberindex des Umfangs ignoriert wird. Sofern nicht auf einem Basisdatenträger, kann VDS den einzigen Member eines Plexs um eine beliebige Datenträgerausdehnung auf demselben Datenträger oder auf einem anderen Datenträger erweitern.
- Für gestreifte und gestreifte Plextypen weist VDS dem Member des Plexs wie folgt einen Bereich zu:
- Der Umfang geht an den vom Aufrufer angegebenen Memberindex.
- Der Umfang geht an den Memberindex, der denselben Datenträger belegt, wenn der Aufrufer keine Member-ID angeben kann.
Implementer müssen einen Zeiger auf die IVdsAsync-Schnittstelle für diese Methode zurückgeben, unabhängig davon, ob der Aufruf einen asynchronen Vorgang initiiert.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | vds.h |
Bibliothek | Uuid.lib |