CompactVirtualDisk 함수(virtdisk.h)
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
OpenVirtualDisk에 전달된 VirtualDiskAccessMask 매개 변수의 VIRTUAL_DISK_ACCESS_METAOPS 플래그를 사용하여 열어야 하는 열린 가상 디스크에 대한 핸들입니다. 가상 디스크를 여는 방법에 대한 자세한 내용은 OpenVirtualDisk 함수를 참조하세요.
[in] Flags
COMPACT_VIRTUAL_DISK_FLAG 열거형의 COMPACT_VIRTUAL_DISK_FLAG_NONE 값(0)이어야 합니다.
[in, optional] Parameters
압축 매개 변수 데이터를 포함하는 유효한 COMPACT_VIRTUAL_DISK_PARAMETERS 구조체에 대한 선택적 포인터입니다.
[in, optional] Overlapped
비동기 작업이 필요한 경우 유효한 OVERLAPPED 구조체에 대한 선택적 포인터입니다.
반환 값
요청의 상태입니다.
함수가 성공하면 반환 값이 ERROR_SUCCESS.
함수가 실패하면 반환 값은 오류 코드입니다. 자세한 내용은 시스템 오류 코드를 참조하세요.
설명
압축은 동적으로 확장 가능하거나 차이점이 있는 가상 디스크에서만 실행할 수 있습니다.
압축에는 두 가지 유형이 있습니다.
- 첫 번째 형식인 파일 시스템 인식 압축은 NTFS 파일 시스템을 사용하여 여유 공간을 결정합니다. 이 작업은 OpenVirtualDisk에 전달된 VirtualDiskAccessMask 매개 변수에 VIRTUAL_DISK_ACCESS_METAOPS 및 VIRTUAL_DISK_ACCESS_ATTACH_RO 플래그를 포함하고, AttachVirtualDisk를 호출하여 VHD를 연결하고, VHD가 CompactVirtualDisk를 호출하는 동안 VHD를 읽기 전용 디바이스로 연결하여 수행됩니다. 압축을 수행하기 전에 VHD를 분리하면 압축이 완료되기 전에 오류를 반환할 수 있습니다(압축 취소와 유사).
- 두 번째 형식인 파일 시스템 독립적 압축은 파일 시스템을 포함하지 않지만 완전히 0으로 채워진 VHD 블록만 찾습니다. 이 작업은 OpenVirtualDisk에 전달된 VirtualDiskAccessMask 매개 변수에 VIRTUAL_DISK_ACCESS_METAOPS 플래그를 포함하고 CompactVirtualDisk를 호출하여 수행됩니다.
가상 디스크의 압축 작업은 안전하게 중단되고 나중에 다시 실행될 수 있습니다. 중단된 가상 디스크 파일을 다시 열면 열 때 가상 디스크 파일의 크기가 감소할 수 있습니다.
압축은 가상 디스크의 크기 및 이동이 필요한 블록 수에 따라 CPU 집약적 및/또는 I/O 집약적일 수 있습니다.
CompactVirtualDisk 함수는 호출자와 동일한 보안 컨텍스트의 가상 디스크에서 실행됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 |
지원되는 최소 서버 | Windows Server 2008 R2 |
대상 플랫폼 | Windows |
헤더 | virtdisk.h |
라이브러리 | VirtDisk.lib |
DLL | VirtDisk.dll |