Метод IVdsVolume::Extend (vds.h)
[Начиная с Windows 8 и Windows Server 2012, COM-интерфейс службы виртуальных дисков замечается API управления хранилищем Windows.]
Расширяет размер текущего тома, добавляя экстенты диска к каждому элементу каждого плекса.
Синтаксис
HRESULT Extend(
[in] VDS_INPUT_DISK *pInputDiskArray,
[in] LONG lNumberOfDisks,
[out] IVdsAsync **ppAsync
);
Параметры
[in] pInputDiskArray
Указатель на массив VDS_INPUT_DISK структур; одна структура для каждого диска.
[in] lNumberOfDisks
Общее количество дисков в томе. Вызывающие элементы могут передавать ноль, если в сплетениях тома достаточно места для расширения тома; pInputDiskArray должно иметь значение NULL.
[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 . Возможные возвращаемые значения включают следующие.
Возвращаемый код/значение | Описание |
---|---|
|
Метод успешно конкурировал. |
|
Невозможно расширить том, так как файловая система тома не поддерживает операцию. |
|
Недостаточно места для расширения тома. |
|
Том не работоспособен. |
Комментарии
Этот метод расширяет простой том на том же диске или создает том, расширяя том до нескольких дисков. Вызывающие абоненты могут расширить том на базовом диске, однако экстент диска должен быть связан с томом.
VDS автоматически расширяет файловую систему в соответствии с расширенным размером тома. Файловая система должна поддерживать эту операцию. VDS расширяет файловую систему, но не том, если вызывающей системе не удается указать экстенты для использования.
Операции расширения и сжатия поддерживаются только на томах NTFS и RAW.
VDS применяет следующие правила при расширении тома:
- Для простых и составных типов плексов VDS расширяет единственный член плекса любым экстентом диска, который еще не участвует в другом плексе, независимо от того, находится ли экстент на том же диске или нет. VDS использует экстенты диска в порядке, заданном вызывающим объектом, игнорируя индекс элемента экстента. Если только не на базовом диске, VDS может расширить единственный член plex с помощью любого экстента диска на том же диске или на другом диске.
- Для чередующегося и чередующегося типов с лексами четности VDS присваивает экстент члену плекса следующим образом:
- Экстент переходит к индексу элемента, заданному вызывающим объектом.
- Экстент переходит к индексу элемента, который занимает тот же диск, когда вызывающей объекту не удается указать идентификатор элемента.
Реализующие объекты должны возвращать указатель на интерфейс IVdsAsync для этого метода, независимо от того, инициирует ли вызов асинхронную операцию.
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | vds.h |
Библиотека | Uuid.lib |