Compartilhar via


Método IVdsSubSystem::QueryLuns (vds.h)

[Começando com Windows 8 e Windows Server 2012, a interface COM do Serviço de Disco Virtual é substituída pela API de Gerenciamento de Armazenamento do Windows.]

Retorna uma enumeração de LUNs exibidas no subsistema. Esse método se aplica somente a objetos de provedor de hardware.

Sintaxe

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

Parâmetros

[out] ppEnum

O endereço de um ponteiro de interface IEnumVdsObject que pode ser usado para enumerar os LUNs como objetos LUN. Para obter mais informações, consulte Trabalhando com objetos de enumeração. Os chamadores devem liberar a interface e cada um dos objetos LUN quando não forem mais necessários chamando o método IUnknown::Release .

Retornar valor

Esse método pode retornar valores HRESULT padrão, como E_INVALIDARG ou E_OUTOFMEMORY e valores retornados específicos do VDS. Ele também pode retornar códigos de erro do sistema convertidos usando a macro HRESULT_FROM_WIN32 . Os erros podem ser originados do próprio VDS ou do provedor de VDS subjacente que está sendo usado. Os possíveis valores retornados incluem o seguinte.

Valor/código retornado Descrição
S_OK
Retorna a enumeração de LUNs no subsistema. Se o subsistema não tiver LUNs, a enumeração estará vazia.
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
Esse valor retornado sinaliza um problema de software ou comunicação dentro de um provedor que armazena em cache informações sobre a matriz. Use o método IVdsHwProvider::Reenumerate seguido pelo método IVdsHwProvider::Refresh para restaurar o cache.
VDS_E_OBJECT_DELETED
0x8004240BL
O objeto do subsistema não está mais presente.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
O subsistema está em um estado de falha e não consegue executar a operação solicitada.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
Outra operação está em andamento; essa operação não pode continuar até que a operação ou as operações anteriores sejam concluídas.

Comentários

A interface IEnumVdsObject inclui todos os LUNs no subsistema, independentemente do mascaramento de LUN.

Os implementadores devem retornar um objeto de enumeração vazio para cada subsistema sem LUNs.

Se esse método for chamado em dois threads separados que estão sendo executados simultaneamente, os resultados poderão ser inconsistentes. Se ele for chamado em um thread enquanto um método como IVdsLun::D elete for chamado em outro thread que está sendo executado simultaneamente, o resultado poderá ser uma violação de acesso do provedor. O provedor de hardware é responsável por serializar essa operação de consulta conforme necessário para minimizar esses problemas de sincronização.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho vds.h
Biblioteca Uuid.lib

Confira também

IEnumVdsObject

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsSubSystem