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


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

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

Сжимает LUN на указанное число байтов.

Синтаксис

HRESULT Shrink(
  [in]  ULONGLONG ullNumberOfBytesToRemove,
  [out] IVdsAsync **ppAsync
);

Параметры

[in] ullNumberOfBytesToRemove

Число байтов, на которое сжимается LUN. Число байтов не обязательно должно быть кратным размеру блока или сектора.

[out] ppAsync

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

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

Этот метод может возвращать стандартные значения 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
Выполняется другая операция; Эта операция не может продолжаться до завершения предыдущей операции или операций.

Комментарии

Реализующие объекты должны возвращать указатель на интерфейс IVdsAsync для этого метода, независимо от того, инициирует ли вызов асинхронную операцию.

После сжатия LUN вызывающий объект должен использовать управляющий код IOCTL_DISK_UPDATE_PROPERTIES , чтобы обновленный размер диска отображался на компьютере, на котором не маскируется LUN.

Разработчики должны удалить байты из конца LUN.

Требования

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

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

IVdsAsync

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLun

IVdsLun::Extend