Метод IVdsLun::Extend (vdshwprv.h)
[Начиная с Windows 8 и Windows Server 2012 COM-интерфейс службы виртуальных дисков замечается API управления хранилищем Windows.]
Расширяет LUN на указанное количество байтов.
Синтаксис
HRESULT Extend(
[in] ULONGLONG ullNumberOfBytesToAdd,
[in] VDS_OBJECT_ID *pDriveIdArray,
[in] LONG lNumberOfDrives,
[out] IVdsAsync **ppAsync
);
Параметры
[in] ullNumberOfBytesToAdd
Число байтов, на которое расширяется LUN. Количество байтов не обязательно должно быть даже кратным размеру блока или сектора дисков. Поставщик может округлить количество байтов вверх или вниз в соответствии с требованиями к выравниванию или другими ограничениями. В большинстве случаев поставщик округляется вверх, гарантируя, что за редкими исключениями LUN расширяется по крайней мере на количество запрошенных байтов.
[in] pDriveIdArray
Указатель на массив GUID дисков. Поставщик использует эти диски для расширения LUN. Диски используются в указанной последовательности; Поставщик использует все экстенты на одном диске, прежде чем переходить к следующему и останавливается, когда LUN был расширен на запрошенное количество байтов.
Кроме того, вызывающий объект может направить поставщика на автоматический выбор дисков, передав null в этом параметре и ноль в параметре lNumberOfDrives . Обратите внимание, что передача NULL допустима, только если параметр lNumberOfDrives равен нулю.
[in] lNumberOfDrives
Количество дисков, указанное в параметре pDriveIdArray . Если вызывающий объект передает ноль, поставщик выбирает диски.
[out] ppAsync
Адрес указателя интерфейса IVdsAsync , который VDS инициализирует при возврате. Вызывающие элементы должны освободить интерфейс. Используйте этот интерфейс для отмены, ожидания или запроса состояния операции.
Возвращаемое значение
Этот метод может возвращать стандартные значения HRESULT, такие как E_INVALIDARG или E_OUTOFMEMORY, а также возвращаемые значения VDS. Он также может возвращать преобразованные коды системных ошибок с помощью макроса HRESULT_FROM_WIN32 . Ошибки могут возникать из самого VDS или из используемого базового поставщика VDS . Возможные возвращаемые значения включают следующие.
Возвращаемый код или значение | Описание |
---|---|
|
Это возвращаемое значение сигнализирует о проблеме программного обеспечения или связи внутри поставщика, который кэширует сведения о массиве. Для восстановления кэша используйте метод IVdsHwProvider::Reenumerate , за которым следует метод IVdsHwProvider::Refresh . |
|
Объект LUN больше не присутствует. |
|
LUN находится в состоянии сбоя и не может выполнить запрошенную операцию. |
|
Выполняется другая операция; Эта операция не может продолжаться до завершения предыдущей операции или операций. |
|
Может быть возвращен из любого метода, который принимает константу VDS_OBJECT_ID . Это возвращаемое значение указывает, что идентификатор не ссылается на существующий объект. |
|
Эта операция или сочетание параметров не поддерживается этим поставщиком. |
|
Недостаточно места для этой операции. |
|
Для выполнения этой операции в подсистеме недостаточно свободных дисков. |
Комментарии
Вызывающие абоненты могут указать список дисков, которые поставщик будет использовать для расширения LUN, или направить поставщику на автоматический выбор дисков.
После расширения LUN вызывающий объект должен использовать управляющий код IOCTL_DISK_UPDATE_PROPERTIES , чтобы обновленный размер диска отображался на компьютере, для которого lun не маскируется.
Реализующие объекты должны возвращать указатель на интерфейс IVdsAsync для этого метода независимо от того, инициирует ли вызов асинхронную операцию.
Если параметр ullNumberOfBytesToAdd больше, чем количество байтов, доступных на дисках, указанных в параметре pDriveIdArray , сначала используйте указанные диски, а затем выберите другие доступные диски. Если таких дисков недостаточно для расширения LUN на запрошенное количество байтов, верните ошибку и не расширяйте LUN.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | vdshwprv.h |
Библиотека | Uuid.lib |