Метод IVdsOpenVDisk::Compact (vds.h)

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

Сжимает виртуальный диск, чтобы уменьшить физический размер резервного файла.

Синтаксис

HRESULT Compact(
  [in]  COMPACT_VIRTUAL_DISK_FLAG Flags,
  [in]  ULONG                     Reserved,
  [out] IVdsAsync                 **ppAsync
);

Параметры

[in] Flags

Значение перечисления COMPACT_VIRTUAL_DISK_FLAG , указывающее способ сжатия виртуального диска. Должно быть задано значение COMPACT_VIRTUAL_DISK_FLAG_NONE.

[in] Reserved

Этот параметр зарезервирован для системного использования.

[out] ppAsync

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

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

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

Код возврата Описание
S_OK
Метод завершился успешно.

Комментарии

Виртуальный диск можно сжать, только если он находится в одном из следующих состояний:

  • Отсоединение (автономный режим)
  • Присоединено и открыто с доступом только для чтения (в сетевом режиме)
Если он находится в каком-либо другом состоянии, операция сжатия завершается ошибкой.

Виртуальный диск должен быть расширяемым (также называемым динамическим) или разностным виртуальным диском.

Операцию можно безопасно прервать и повторно выполнить позже. Если операция прервана и резервный файл повторно открыт, размер файла может быть уменьшен при открытии файла.

Операция может быть интенсивной для ЦП или операций ввода-вывода, а также в зависимости от размера виртуального диска и количества неиспользуемых блоков, требующих манипуляции.

Этот метод уменьшает размер файла резервного хранилища виртуального диска за счет освобождения неиспользуемого пространства. Если этот метод вызывается для отсоединяемого виртуального диска, он может освободить только место в файле, который никогда не использовался для записи данных. Если он вызывается для виртуального диска, подключенного и открытого с доступом только для чтения, он сможет освободить место, которое когда-то использовалось, но позже было освобождено. Вызов этого метода для виртуального диска, подключенного и открытого с доступом только для чтения, освобождает максимальный объем свободного места в файле резервного хранилища.

Требования

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

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

IVdsOpenVDisk