Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Уменьшает размер файла резервного хранилища виртуального жесткого диска (VHD).
Синтаксис
DWORD CompactVirtualDisk(
[in] HANDLE VirtualDiskHandle,
[in] COMPACT_VIRTUAL_DISK_FLAG Flags,
[in, optional] PCOMPACT_VIRTUAL_DISK_PARAMETERS Parameters,
[in, optional] LPOVERLAPPED Overlapped
);
Параметры
[in] VirtualDiskHandle
Дескриптор открытого виртуального диска, который должен быть открыт с помощью флага VIRTUAL_DISK_ACCESS_METAOPS в параметре VirtualDiskAccessMask , переданном в OpenVirtualDisk. Сведения об открытии виртуального диска см. в разделе Функция OpenVirtualDisk .
[in] Flags
Должно быть COMPACT_VIRTUAL_DISK_FLAG_NONE значением (0) перечисления COMPACT_VIRTUAL_DISK_FLAG .
[in, optional] Parameters
Необязательный указатель на допустимую структуру COMPACT_VIRTUAL_DISK_PARAMETERS , содержащую данные параметров сжатия.
[in, optional] Overlapped
Необязательный указатель на допустимую структуру OVERLAPPED , если требуется асинхронная операция.
Возвращаемое значение
Состояние запроса.
Если функция завершается успешно, возвращаемое значение будет ERROR_SUCCESS.
Если функция завершается сбоем, возвращаемое значение представляет собой код ошибки. Дополнительные сведения см. в разделе Системные коды ошибок.
Комментарии
Сжатие можно выполнять только на виртуальном диске, который динамически расширяется или отличается друг от друга.
Существует два разных типа сжатия.
- Первый тип, сжатие с учетом файловой системы, использует файловую систему NTFS для определения свободного места. Это делается путем подключения виртуального жесткого диска в качестве устройства только для чтения, включив флаги VIRTUAL_DISK_ACCESS_METAOPS и VIRTUAL_DISK_ACCESS_ATTACH_RO в параметр VirtualDiskAccessMask , переданный в OpenVirtualDisk, присоединение VHD путем вызова AttachVirtualDisk, а при подключении виртуального жесткого диска вызывается CompactVirtualDisk. Отсоединение виртуального жесткого диска до завершения сжатия может привести к сбою сжатия до его завершения (аналогично отмене сжатия).
- Второй тип, не зависящая от файловой системы, не связан с файловой системой, а ищет только блоки VHD, заполненные нулями (0). Это делается путем включения флага VIRTUAL_DISK_ACCESS_METAOPS в параметр VirtualDiskAccessMask , переданного в OpenVirtualDisk, и вызова CompactVirtualDisk.
Операцию сжатия на виртуальном диске можно безопасно прервать и повторно выполнить позже. Повторное открытие прерванного файла виртуального диска может привести к уменьшению размера файла виртуального диска во время открытия.
Сжатие может быть ресурсоемким для ЦП или операций ввода-вывода в зависимости от размера виртуального диска и количества блоков, требующих перемещения.
Функция CompactVirtualDisk выполняется на виртуальном диске в том же контексте безопасности, что и вызывающий объект.
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows 7 |
| Минимальная версия сервера | Windows Server 2008 R2 |
| Целевая платформа | Windows |
| Header | virtdisk.h |
| Библиотека | VirtDisk.lib |
| DLL | VirtDisk.dll |