Метод IVdsLun::AssociateControllers (vds.h)

[Начиная с Windows 8 и Windows Server 2012 COM-интерфейс службы виртуальных дисков замечается API управления хранилищем Windows.]

Задает для контроллеров подсистемы активные или неактивные по отношению к LUN.

Синтаксис

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

Параметры

[in] pActiveControllerIdArray

Указатель на массив GUID контроллера. Поставщик устанавливает для этих контроллеров значение "Активный". Этот массив включает контроллеры, для которых уже задано значение "Активный", которые должны оставаться таковыми.

[in] lNumberOfActiveControllers

Количество контроллеров, указанное в параметре pActiveControllerArray .

[in] pInactiveControllerIdArray

Указатель на массив GUID контроллера. Поставщик задает для этих контроллеров значение неактивное. Этот массив включает контроллеры, которые уже заданы как неактивные, которые должны оставаться таковыми.

[in] lNumberOfInactiveControllers

Количество контроллеров, указанное в параметре pInactiveControllerIdArray .

Возвращаемое значение

Этот метод может возвращать стандартные значения HRESULT, такие как E_INVALIDARG или E_OUTOFMEMORY, а также возвращаемые значения VDS. Он также может возвращать преобразованные коды системных ошибок с помощью макроса HRESULT_FROM_WIN32 . Ошибки могут возникать из самого VDS или из используемого базового поставщика VDS . Возможные возвращаемые значения включают следующие.

Возвращаемый код или значение Описание
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
Это возвращаемое значение сигнализирует о проблеме программного обеспечения или связи внутри поставщика, который кэширует сведения о массиве. Для восстановления кэша используйте метод IVdsHwProvider::Reenumerate , за которым следует метод IVdsHwProvider::Refresh .
VDS_E_OBJECT_DELETED
0x8004240BL
Объект LUN больше не присутствует.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
LUN находится в состоянии сбоя и не может выполнить запрошенную операцию.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
Выполняется еще одна операция. Эта операция не может продолжаться до завершения предыдущей операции или операций.
VDS_E_OBJECT_NOT_FOUND
0x80042405L
Один или несколько идентификаторов GUID, указанных в активных или неактивных массивах, не относятся к существующему объекту.
VDS_E_NOT_SUPPORTED
0x80042400L
Эта операция или сочетание параметров не поддерживается этим поставщиком.

Комментарии

Вызывающий объект должен включать каждый контроллер подсистемы в один из параметров pActiveControllerIdArray или pInactiveControllerIdArray для каждого вызова метода. Состав параметров pActiveControllerIdArray и pInactiveControllerIdArray может отличаться для каждого lun подсистемы. Большинство подсистем реализуют только один активный контроллер, но некоторые позволяют использовать несколько активных контроллеров.

Примечание Возвращаемое значение E_INVALIDARG может указывать на то, что вызывающий объект не указал все контроллеры в подсистеме. Метод AssociateControllers требует, чтобы все контроллеры в подсистеме присутствовали в одном из двух предоставленных массивов.
 
Используйте метод IVdsLun::QueryActiveControllers для запроса сопоставлений контроллеров. Используйте метод IVdsController::QueryAssociatedLuns для запроса LUN, связанных с определенным контроллером.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header vds.h
Библиотека Uuid.lib

См. также раздел

IVdsController::QueryAssociatedLuns

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLun

IVdsLun::QueryActiveControllers