Compartilhar via


Método IVdsDrive::QueryExtents (vdshwprv.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 matriz das extensões em uma unidade, incluindo extensões alocadas e não alocadas.

Sintaxe

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

Parâmetros

[out] ppExtentArray

Um ponteiro para a matriz de estruturas VDS_DRIVE_EXTENT passadas pelo chamador. Os chamadores devem liberar essa matriz usando a função CoTaskMemFree .

[out] plNumberOfExtents

Um ponteiro para o número de extensões de unidade retornadas na estrutura VDS_DRIVE_EXTENT .

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
As informações de extensões foram retornadas com êxito. Para uma unidade sem extensões, a matriz está vazia, o valor de plNumberOfExtents é definido como 0 e o valor de ppExtentArray é definido como NULL.
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 de unidade não existe mais.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
A unidade 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.
VDS_E_NOT_SUPPORTED
0x80042400L
O subsistema não dá suporte a esse método.

Comentários

Uma unidade pode contribuir com extensões para qualquer número de LUNs, e esses LUNs podem ser desmascarados para qualquer número de computadores diferentes na rede. Use o método IVdsLunPlex::QueryExtents para ver todas as extensões de um plex de LUN.

O membro LunId de cada estrutura VDS_DRIVE_EXTENT especifica o GUID para o LUN para o qual cada extensão alocada contribui. Consequentemente, você pode usar o resultado desse método para determinar o número de LUNs para os quais a unidade contribui contando o número de valores lunId distintos retornados em ppExtentArray.

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 vdshwprv.h
Biblioteca Uuid.lib

Confira também

IVdsDrive

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLunPlex::QueryExtents

VDS_DRIVE_EXTENT