Метод IVdsVolumePlex::Repair (vds.h)

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

Восстанавливает отказоустойчивый пул томов, перемещая недопустимые элементы на хорошие диски.

Синтаксис

HRESULT Repair(
  [in]  VDS_INPUT_DISK *pInputDiskArray,
  [in]  LONG           lNumberOfDisks,
  [out] IVdsAsync      **ppAsync
);

Параметры

[in] pInputDiskArray

Указатель на массив VDS_INPUT_DISK структур, по одной структуре для каждого диска.

Примечание Включите только необходимые элементы этой структуры (diskId и ullSize).
 
Windows Server 2003: с помощью этого метода можно восстановить только тома, чередующиеся с четностью (RAID-5), и в этот метод одновременно может передаваться только один новый диск.

[in] lNumberOfDisks

Общее количество дисков в томе.

[out] ppAsync

Адрес указателя интерфейса IVdsAsync , который VDS инициализирует при возврате. Вызывающие стороны должны освободить интерфейс. Используйте этот указатель для отмены, ожидания или запроса состояния операции.

Если вы вызываете IVdsAsync::Wait для этого метода и возвращается успешное значение HRESULT, необходимо освободить интерфейсы, возвращенные в структуре VDS_ASYNC_OUTPUT , вызвав метод IUnknown::Release для каждого указателя интерфейса. Однако если функция Wait возвращает значение HRESULT сбоя или параметр pHrResultобъекта Wait получает значение HRESULT сбоя, указатели интерфейса в структуре VDS_ASYNC_OUTPUT имеют значение NULL и не должны освобождаться. Вы можете проверить наличие значений HRESULT успешного или неудачного выполнения с помощью макросов SUCCEEDED и FAILED , определенных в Winerror.h.

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

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

Возвращаемый код/значение Описание
S_OK
Восстановление успешно завершено.
E_NOTIMPL
Вызывающий попытался восстановить сплетение базового тома, который всегда работоспособен и никогда не нуждается в ремонте.
VDS_E_REPAIR_VOLUMESTATE
0x80042460L
Сплетение или том недоступны. Кроме того, эта ошибка может быть возвращена, если состояние plex не является одним из следующих: сбой избыточности, сбой избыточности или сбой избыточности.
VDS_E_DISK_IN_USE_BY_VOLUME
0x8004244CL
Один или несколько экстентов диска уже используются томом.
VDS_E_VOLUME_INCOMPLETE
0x80042432L
В томе отсутствует один или несколько элементов или он каким-то образом является неполным.

Требования

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

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

IVdsAsync

IVdsAsync::Wait

IVdsVolumePlex

VDS_ASYNC_OUTPUT

VDS_INPUT_DISK