Freigeben über


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.

Hinweis Aufrufer sollten keinen Standardmemberindex in Verbindung mit der Extend-Methode verwenden, es sei denn, das Volume verfügt nur über einen Plex mit nur einem Member.
 

[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
S_OK
Die Methode ist erfolgreich angetreten.
VDS_E_CANNOT_EXTEND
0x8004240EL
Das Volume kann nicht erweitert werden, da das Dateisystem auf dem Volume den Vorgang nicht unterstützt.
VDS_E_NOT_ENOUGH_SPACE
0x8004240FL
Es ist nicht genügend Speicherplatz vorhanden, um das Volume zu erweitern.
VDS_E_VOLUME_NOT_HEALTHY
0x8004243EL
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.
    VDS weist niemals mehreren Membern auf demselben Datenträger einen Umfang zu. Der Aufrufer muss einen Member für alle Ausdehnungen oder keines angeben. Der Aufrufer kann für einige Erweiterungen kein Element angeben, für andere nicht.
Wenn der Aufrufer NULL für pInputDiskArray und null für lNumberOfDisks übergibt, gibt VDS S_FALSE im asynchronen Objekt und S_OK für die -Methode zurück. In diesem Fall gibt S_OK an, dass VDS den Vorgang gestartet hat, aber der Vorgang synchron ist.

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

Weitere Informationen

IVdsAsync

IVdsAsync::Wait

IVdsVolume

IVdsVolumeShrink::Shrink

VDS_ASYNC_OUTPUT

VDS_INPUT_DISK