Metodo IVdsLun::Extend (vds.h)
[A partire da Windows 8 e Windows Server 2012, l'interfaccia COM del servizio disco virtuale viene sostituita dall'API gestione archiviazione di Windows.
Estende un LUN per un numero specificato di byte.
Sintassi
HRESULT Extend(
[in] ULONGLONG ullNumberOfBytesToAdd,
[in] VDS_OBJECT_ID *pDriveIdArray,
[in] LONG lNumberOfDrives,
[out] IVdsAsync **ppAsync
);
Parametri
[in] ullNumberOfBytesToAdd
Numero di byte da cui estendere il LUN. Il numero di byte non è necessario essere un numero pari a più delle dimensioni del blocco o del settore delle unità. Il provider può arrotondare il numero di byte verso l'alto o verso il basso per soddisfare i requisiti di allineamento o altre restrizioni. Nella maggior parte dei casi, il provider esegue il round up, assicurandosi che, con eccezioni rare, il LUN venga esteso per almeno il numero di byte richiesti.
[in] pDriveIdArray
Puntatore a una matrice di GUID di unità. Il provider usa queste unità per estendere il LUN. Le unità vengono usate nella sequenza specificata; il provider usa tutti gli extent in un'unità prima di passare al successivo e si arresta quando il LUN è stato esteso dal numero richiesto di byte.
In alternativa, il chiamante può indirizzare il provider per selezionare automaticamente le unità passando NULL in questo parametro e zero nel parametro lNumberOfDrives . Si noti che il passaggio di NULL è valido solo se il parametro lNumberOfDrives è zero.
[in] lNumberOfDrives
Numero di unità specificate nel parametro pDriveIdArray . Se il chiamante supera zero, il provider seleziona le unità.
[out] ppAsync
Indirizzo di un puntatore dell'interfaccia IVdsAsync , che il VDS inizializza sul ritorno. I chiamanti devono rilasciare l'interfaccia. Usare questa interfaccia per annullare, attendere o eseguire query sullo stato dell'operazione.
Valore restituito
Questo metodo può restituire valori HRESULT standard, ad esempio E_INVALIDARG o E_OUTOFMEMORY e valori restituiti specifici di VDS. Può anche restituire codici di errore di sistema convertiti usando la macro HRESULT_FROM_WIN32 . Gli errori possono derivare da VDS stesso o dal provider VDS sottostante usato. I valori restituiti possibili includono quanto segue.
Codice/valore restituito | Descrizione |
---|---|
|
Questo valore restituito segnala un problema di comunicazione o software all'interno di un provider che memorizza nella cache le informazioni sulla matrice. Usare il metodo IVdsHwProvider::Reenumerate seguito dal metodo IVdsHwProvider ::Refresh per ripristinare la cache. |
|
L'oggetto LUN non è più presente. |
|
Il LUN è in uno stato non riuscito e non è in grado di eseguire l'operazione richiesta. |
|
Un'altra operazione è in corso; questa operazione non può continuare fino al completamento dell'operazione o delle operazioni precedenti. |
|
Può essere restituito da qualsiasi metodo che accetta una costante VDS_OBJECT_ID . Questo valore restituito indica che l'identificatore non fa riferimento a un oggetto esistente. |
|
Questa operazione o combinazione di parametri non è supportata da questo provider. |
|
Non è disponibile spazio utilizzabile sufficiente per questa operazione. |
|
Non sono presenti unità gratuite sufficienti nel sottosistema per completare questa operazione. |
Commenti
I chiamanti possono specificare un elenco di unità da usare per estendere il LUN o indirizzare il provider per selezionare automaticamente le unità.
Dopo aver esteso il LUN, il chiamante deve usare il codice di controllo IOCTL_DISK_UPDATE_PROPERTIES per rendere visibili le dimensioni del disco aggiornate nel computer in cui il LUN è senza maschera.
Gli implementatori devono restituire un puntatore all'interfaccia IVdsAsync per questo metodo, indipendentemente dal fatto che la chiamata avvia un'operazione asincrona.
Se il parametro ullNumberOfBytesToAdd è maggiore del numero di byte disponibili nelle unità specificate nel parametro pDriveIdArray , usare prima le unità specificate e quindi selezionare da qualsiasi altra unità disponibile. Se tali unità non sono sufficienti per estendere il LUN dal numero richiesto di byte, restituire un errore e non estendere il LUN.
Requisiti
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | vds.h |
Libreria | Uuid.lib |