Поделиться через


Метод IVdsSubSystem::SetControllerStatus (vdshwprv.h)

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

Задает состояние контроллеров в подсистеме (в сети или в автономном режиме).

Синтаксис

HRESULT SetControllerStatus(
  [in] VDS_OBJECT_ID *pOnlineControllerIdArray,
  [in] LONG          lNumberOfOnlineControllers,
  [in] VDS_OBJECT_ID *pOfflineControllerIdArray,
  [in] LONG          lNumberOfOfflineControllers
);

Параметры

[in] pOnlineControllerIdArray

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

[in] lNumberOfOnlineControllers

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

[in] pOfflineControllerIdArray

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

[in] lNumberOfOfflineControllers

Число контроллеров, указанное в pOfflineControllersArray.

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

Этот метод может возвращать стандартные значения 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
Объект подсистемы больше не присутствует.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
Подсистема находится в состоянии сбоя и не может выполнить запрошенную операцию.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
Выполняется другая операция; Эта операция не может продолжаться до завершения предыдущей операции или операций.
VDS_E_OBJECT_NOT_FOUND
0x80042405L
Может быть возвращен из любого метода, который принимает константу VDS_OBJECT_ID . Это возвращаемое значение указывает, что идентификатор не ссылается на существующий объект.

Комментарии

Этот метод позволяет вызывающей объекту задавать состояние всех контроллеров одновременно. Используйте метод IVdsController::SetStatus , чтобы задать состояние одного контроллера.

Вызывающие стороны должны передавать полный набор контроллеров в параметре pOnlineControllerIdArray или pOfflineControllerIdArray для каждого вызова метода. Возвращаемое значение E_INVALIDARG может указывать на то, что не все контроллеры в подсистеме были указаны в аргументах этого метода.
Метод SetControllerStatus требует, чтобы все контроллеры в подсистеме присутствовали в одном из двух предоставленных массивов.

Требования

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

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

IVdsController::SetStatus

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsSubSystem