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 |
---|---|
|
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. |
|
Das LUN-Objekt ist nicht mehr vorhanden. |
|
Die LUN weist einen Fehlerstatus auf und kann den angeforderten Vorgang nicht ausführen. |
|
Ein weiterer Vorgang wird ausgeführt; Dieser Vorgang kann erst fortgesetzt werden, wenn der vorherige Vorgang abgeschlossen ist. |
|
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. |
|
Dieser Vorgang oder eine Kombination von Parametern wird von diesem Anbieter nicht unterstützt. |
|
Für diesen Vorgang ist nicht genügend nutzbarer Speicherplatz vorhanden. |
|
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 |