IVdsLun::Extend-Methode (vdshwprv.h)

[Ab Windows 8 und Windows Server 2012 wird die COM-Schnittstelle des Virtuellen Datenträgerdiensts durch die Windows Storage Management-API ersetzt.]

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 LUN zu erweitern. Die Anzahl der Bytes muss kein gerades Vielfaches der Block- oder Sektorgröße der Laufwerke sein. Der Anbieter kann die Anzahl der Bytes auf- oder herunterrunden, 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 Ausdehnungen 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 0 ist.

[in] lNumberOfDrives

Die Anzahl von Laufwerken, die im pDriveIdArray-Parameter angegeben sind. 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, abzuwarten oder 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 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
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 ist fehlerhaft 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 oder die vorherigen Vorgänge abgeschlossen sind.
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 diese 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
Im Subsystem sind nicht genügend freie Laufwerke 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-Steuerelementcode verwenden, um die aktualisierte Datenträgergröße auf dem Computer sichtbar zu machen, auf dem die LUN enttarnt 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.

Wenn der ullNumberOfBytesToAdd-Parameter größer ist als die Anzahl von Bytes, die auf den im pDriveIdArray-Parameter angegebenen Laufwerken verfügbar sind, verwenden Sie zuerst die angegebenen Laufwerke, und wählen Sie dann aus den 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

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile vdshwprv.h
Bibliothek Uuid.lib

Weitere Informationen

IVdsAsync

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLun

IVdsLun::Shrink

IVdsSubSystem::CreateLun