Freigeben über


IVdsLun::Extend-Methode (vds.h)

[Ab Windows 8 und Windows Server 2012 wird die COM-Schnittstelle des Virtuellen Datenträgerdiensts von der Windows Storage Management-API abgelöst.]

Erweitert eine LUN um eine angegebene Anzahl von Bytes.

Syntax

HRESULT Extend(
  [in]  ULONGLONG     ullNumberOfBytesToAdd,
  [in]  VDS_OBJECT_ID *pDriveIdArray,
  [in]  LONG          lNumberOfDrives,
  [out] IVdsAsync     **ppAsync
);

Parameter

[in] ullNumberOfBytesToAdd

Die Anzahl der Bytes, um die die LUN erweitert werden soll. Die Anzahl der Bytes muss kein gerades Vielfaches der Block- oder Sektorgröße der Laufwerke sein. Der Anbieter kann die Anzahl der Bytes nach oben oder unten runden, um Ausrichtungsanforderungen oder andere Einschränkungen zu erfüllen. In den meisten Fällen rundet der Anbieter auf und stellt sicher, dass die LUN mit seltenen Ausnahmen mindestens um die Anzahl der angeforderten Bytes erweitert wird.

[in] pDriveIdArray

Ein Zeiger auf ein Array von Laufwerks-GUIDs. Der Anbieter verwendet diese Laufwerke, um die LUN zu erweitern. Die Laufwerke werden in der angegebenen Sequenz verwendet. Der Anbieter verwendet alle Blöcke auf einem Laufwerk, bevor er zum nächsten wechselt, und beendet, wenn die LUN um die angeforderte Anzahl von Bytes erweitert wurde.

Alternativ kann der Aufrufer den Anbieter anweisen, die Laufwerke automatisch auszuwählen, indem er NULL in diesem Parameter und null im lNumberOfDrives-Parameter übergibt . Beachten Sie, dass das Übergeben von NULL nur gültig ist, wenn der lNumberOfDrives-Parameter null ist.

[in] lNumberOfDrives

Die Anzahl der im pDriveIdArray-Parameter angegebenen Laufwerke. Wenn der Aufrufer null übergibt, wählt der Anbieter die Laufwerke aus.

[out] ppAsync

Die Adresse eines IVdsAsync-Schnittstellenzeigers , der von VDS bei der Rückgabe initialisiert wird. Aufrufer müssen die Schnittstelle freigeben. Verwenden Sie diese Schnittstelle, um den Status des Vorgangs abzubrechen, darauf zu warten oder den Status des Vorgangs abzufragen.

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
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
Dieser Rückgabewert signalisiert ein Software- oder Kommunikationsproblem innerhalb eines Anbieters, der Informationen zum Array zwischenspeichert. Verwenden Sie die IVdsHwProvider::Reenumerate-Methode gefolgt von der IVdsHwProvider::Refresh-Methode , um den Cache wiederherzustellen.
VDS_E_OBJECT_DELETED
0x8004240BL
Das LUN-Objekt ist nicht mehr vorhanden.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
Die LUN weist einen Fehlerstatus auf und kann den angeforderten Vorgang nicht ausführen.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
Ein weiterer Vorgang wird ausgeführt; Dieser Vorgang kann erst fortgesetzt werden, wenn der vorherige Vorgang abgeschlossen ist.
VDS_E_OBJECT_NOT_FOUND
0x80042405L
Kann von jeder Methode zurückgegeben werden, die eine VDS_OBJECT_ID Konstante akzeptiert. Dieser Rückgabewert gibt an, dass der Bezeichner nicht auf ein vorhandenes Objekt verweist.
VDS_E_NOT_SUPPORTED
0x80042400L
Dieser Vorgang oder eine Kombination von Parametern wird von diesem Anbieter nicht unterstützt.
VDS_E_NOT_ENOUGH_SPACE
0x8004240FL
Für diesen Vorgang ist nicht genügend nutzbarer Speicherplatz vorhanden.
VDS_E_NOT_ENOUGH_DRIVE
0x80042410L
Es sind nicht genügend freie Laufwerke im Subsystem vorhanden, um diesen Vorgang abzuschließen.

Hinweise

Aufrufer können eine Liste von Laufwerken angeben, die der Anbieter zum Erweitern der LUN verwenden soll, oder den Anbieter anweisen, die Laufwerke automatisch auszuwählen.

Nachdem die LUN erweitert wurde, sollte der Aufrufer den IOCTL_DISK_UPDATE_PROPERTIES Steuercode verwenden, um die aktualisierte Datenträgergröße auf dem Computer sichtbar zu machen, für den die LUN entmasket ist.

Implementierer müssen einen Zeiger auf die IVdsAsync-Schnittstelle für diese Methode zurückgeben, unabhängig davon, ob der Aufruf einen asynchronen Vorgang initiiert.

Wenn der ullNumberOfBytesToAdd-Parameter größer als die Anzahl von Bytes ist, die auf den im pDriveIdArray-Parameter angegebenen Laufwerken verfügbar sind, verwenden Sie zuerst die angegebenen Laufwerke, und wählen Sie dann aus allen anderen verfügbaren Laufwerken aus. Wenn nicht genügend laufwerke vorhanden sind, um die LUN um die angeforderte Anzahl von Bytes zu erweitern, geben Sie einen Fehler zurück, und erweitern Sie die LUN nicht.

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

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLun

IVdsLun::Shrink

IVdsSubSystem::CreateLun