Condividi tramite


Metodo IVdsDrive::QueryExtents (vdshwprv.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.

Restituisce una matrice degli extent in un'unità, inclusi gli extent allocati e non allocati.

Sintassi

HRESULT QueryExtents(
  [out] VDS_DRIVE_EXTENT **ppExtentArray,
  [out] LONG             *plNumberOfExtents
);

Parametri

[out] ppExtentArray

Puntatore alla matrice di strutture VDS_DRIVE_EXTENT passate dal chiamante. I chiamanti devono liberare questa matrice usando la funzione CoTaskMemFree .

[out] plNumberOfExtents

Puntatore al numero di extent di unità restituiti nella struttura VDS_DRIVE_EXTENT .

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
S_OK
Le informazioni sull'estensione sono state restituite correttamente. Per un'unità senza extent, la matrice è vuota, il valore di plNumberOfExtents è impostato su 0 e il valore di ppExtentArray è impostato su NULL.
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
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.
VDS_E_OBJECT_DELETED
0x8004240BL
L'oggetto unità non esiste più.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
L'unità si trova in uno stato non riuscito e non è in grado di eseguire l'operazione richiesta.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
Un'altra operazione è in corso; questa operazione non può continuare fino al completamento dell'operazione o delle operazioni precedenti.
VDS_E_NOT_SUPPORTED
0x80042400L
Il sottosistema non supporta questo metodo.

Commenti

Un'unità può contribuire a un numero qualsiasi di LUN e questi LUN possono essere smascherati in qualsiasi numero di computer diversi nella rete. Usare il metodo IVdsLunPlex::QueryExtents per visualizzare tutti gli extent di un plex LUN.

Il membro LunId di ogni struttura VDS_DRIVE_EXTENT specifica il GUID per il LUN in cui ogni extent allocato contribuisce. Di conseguenza, è possibile usare il risultato di questo metodo per determinare il numero di LUN a cui l'unità contribuisce conteggiando il numero di valori LunId distinti restituiti in ppExtentArray.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione vdshwprv.h
Libreria Uuid.lib

Vedi anche

IVdsDrive

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLunPlex::QueryExtents

VDS_DRIVE_EXTENT