Condividi tramite


Metodo IVdsSubSystem::QueryLuns (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 un'enumerazione delle LUN rilevate nel sottosistema. Questo metodo si applica solo agli oggetti provider hardware.

Sintassi

HRESULT QueryLuns(
  [out] IEnumVdsObject **ppEnum
);

Parametri

[out] ppEnum

Indirizzo di un puntatore dell'interfaccia IEnumVdsObject che può essere usato per enumerare i LUN come oggetti LUN. Per altre informazioni, vedere Uso degli oggetti di enumerazione. I chiamanti devono rilasciare l'interfaccia e ognuno degli oggetti LUN quando non sono più necessari chiamando il metodo IUnknown::Release .

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
Restituisce l'enumerazione delle LUN nel sottosistema. Se il sottosistema non dispone di LUN, l'enumerazione è vuota.
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 sottosistema non è più presente.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
Il sottosistema 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.

Commenti

L'interfaccia IEnumVdsObject include tutte le LUN nel sottosistema, indipendentemente dalla maschera LUN.

Gli implementatori devono restituire un oggetto di enumerazione vuoto per ogni sottosistema con zero LUN.

Se questo metodo viene chiamato in due thread separati che vengono eseguiti simultaneamente, i risultati potrebbero essere incoerenti. Se viene chiamato in un thread mentre un metodo come IVdsLun::D elete viene chiamato in un altro thread in esecuzione simultaneamente, il risultato potrebbe essere una violazione dell'accesso al provider. Il provider hardware è responsabile della serializzazione di questa operazione di query in base alle esigenze per ridurre al minimo tali problemi di sincronizzazione.

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

IEnumVdsObject

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsSubSystem