Compartilhar via


Método IVdsLun::AssociateControllers (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.]

Define os controladores de subsistema como ativos ou inativos em relação ao LUN.

Sintaxe

HRESULT AssociateControllers(
  [in] VDS_OBJECT_ID *pActiveControllerIdArray,
  [in] LONG          lNumberOfActiveControllers,
  [in] VDS_OBJECT_ID *pInactiveControllerIdArray,
  [in] LONG          lNumberOfInactiveControllers
);

Parâmetros

[in] pActiveControllerIdArray

Um ponteiro para uma matriz de GUIDs do controlador. O provedor define esses controladores como ativos. Essa matriz inclui controladores já definidos como ativos que devem permanecer assim.

[in] lNumberOfActiveControllers

O número de controladores especificados no parâmetro pActiveControllerArray .

[in] pInactiveControllerIdArray

Um ponteiro para uma matriz de GUIDs do controlador. O provedor define esses controladores como inativos. Essa matriz inclui controladores já definidos como inativos que devem permanecer assim.

[in] lNumberOfInactiveControllers

O número de controladores especificado no parâmetro pInactiveControllerIdArray .

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
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 LUN não está mais presente.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
O LUN 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. Esta operação não pode continuar até que a operação ou as operações anteriores sejam concluídas.
VDS_E_OBJECT_NOT_FOUND
0x80042405L
Um ou mais guids especificados nas matrizes ativas ou inativas não se referem a um objeto existente.
VDS_E_NOT_SUPPORTED
0x80042400L
Não há suporte para essa operação ou combinação de parâmetros neste provedor.

Comentários

O chamador deve incluir cada controlador de subsistema em exatamente um dos parâmetros pActiveControllerIdArray ou pInactiveControllerIdArray para cada chamada de método. A composição dos parâmetros pActiveControllerIdArray e pInactiveControllerIdArray pode ser diferente para cada um dos LUNs do subsistema. A maioria dos subsistemas implementa apenas um controlador ativo, mas alguns permitem vários controladores ativos.

Nota O valor retornado E_INVALIDARG pode indicar que o chamador não especificou todos os controladores no subsistema. O método AssociateControllers requer que todos os controladores no subsistema estejam presentes em uma das duas matrizes fornecidas.
 
Use o método IVdsLun::QueryActiveControllers para consultar associações de controlador. Use o método IVdsController::QueryAssociatedLuns para consultar os LUNs associados a um controlador específico.

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

IVdsController::QueryAssociatedLuns

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLun

IVdsLun::QueryActiveControllers