Método IVdsLun::AssociateControllers (vdshwprv.h)

[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]

Establece los controladores del subsistema en activo o inactivo con respecto al LUN.

Sintaxis

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

Parámetros

[in] pActiveControllerIdArray

Puntero a una matriz de GUID del controlador. El proveedor establece estos controladores en activo. Esta matriz incluye controladores ya establecidos en activos que deben permanecer así.

[in] lNumberOfActiveControllers

Número de controladores especificados en el parámetro pActiveControllerArray .

[in] pInactiveControllerIdArray

Puntero a una matriz de GUID del controlador. El proveedor establece estos controladores en inactivos. Esta matriz incluye controladores ya establecidos en inactivos que deben permanecer así.

[in] lNumberOfInactiveControllers

Número de controladores especificados en el parámetro pInactiveControllerIdArray .

Valor devuelto

Este método puede devolver valores HRESULT estándar, como E_INVALIDARG o E_OUTOFMEMORY, y valores devueltos específicos de VDS. También puede devolver códigos de error del sistema convertidos mediante la macro HRESULT_FROM_WIN32 . Los errores pueden originarse en VDS en sí o en el proveedor de VDS subyacente que se está usando. Entre los valores devueltos posibles se incluyen los siguientes.

Código o valor devuelto Descripción
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
Este valor devuelto indica un problema de software o comunicación dentro de un proveedor que almacena en caché información sobre la matriz. Use el método IVdsHwProvider::Reenumerate seguido del método IVdsHwProvider::Refresh para restaurar la memoria caché.
VDS_E_OBJECT_DELETED
0x8004240BL
El objeto LUN ya no está presente.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
El LUN está en estado de error y no puede realizar la operación solicitada.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
Otra operación está en curso. Esta operación no puede continuar hasta que se completen las operaciones o operaciones anteriores.
VDS_E_OBJECT_NOT_FOUND
0x80042405L
Uno o varios de los GUID especificados en las matrices activas o inactivas no hacen referencia a un objeto existente.
VDS_E_NOT_SUPPORTED
0x80042400L
Este proveedor no admite esta operación o combinación de parámetros.

Comentarios

El autor de la llamada debe incluir cada controlador de subsistema en exactamente uno de los parámetros pActiveControllerIdArray o pInactiveControllerIdArray para cada llamada al método. La composición de los parámetros pActiveControllerIdArray y pInactiveControllerIdArray puede ser diferente para cada uno de los LUN del subsistema. La mayoría de los subsistemas implementan solo un controlador activo, pero algunos permiten varios controladores activos.

Nota El valor devuelto E_INVALIDARG puede indicar que el autor de la llamada no especificó todos los controladores del subsistema. El método AssociateControllers requiere que todos los controladores del subsistema estén presentes en una de las dos matrices proporcionadas.
 
Use el método IVdsLun::QueryActiveControllers para consultar las asociaciones del controlador. Use el método IVdsController::QueryAssociatedLuns para consultar los LUN asociados a un controlador determinado.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado vdshwprv.h
Library Uuid.lib

Consulte también

IVdsController::QueryAssociatedLuns

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLun

IVdsLun::QueryActiveControllers