다음을 통해 공유


IVdsOpenVDisk::Compact 메서드(vds.h)

[Windows 8 및 Windows Server 2012 가상 디스크 서비스 COM 인터페이스는 Windows Storage 관리 API로 대체됩니다.]

가상 디스크를 압축하여 백업 파일의 물리적 크기를 줄입니다.

구문

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 값이 반환되면 각 인터페이스 포인터에서 IUnknown::Release 메서드를 호출하여 VDS_ASYNC_OUTPUT 구조에서 반환된 인터페이스를 해제해야 합니다. 그러나 Wait가 실패 HRESULT 값을 반환하거나 WaitpHrResult 매개 변수가 오류 HRESULT 값을 수신하는 경우 VDS_ASYNC_OUTPUT 구조체의 인터페이스 포인터는 NULL이며 해제할 필요가 없습니다. Winerror.h에 정의된 SUCCEEDED 및 FAILED 매크로를 사용하여 성공 또는 실패 HRESULT 값을 테스트할 수 있습니다.

반환 값

이 메서드는 표준 HRESULT 값(예: E_INVALIDARG 또는 E_OUTOFMEMORY) 및 VDS 관련 반환 값을 반환할 수 있습니다. 또한 HRESULT_FROM_WIN32 매크로를 사용하여 변환된 시스템 오류 코드를 반환할 수도 있습니다. 오류는 VDS 자체 또는 사용 중인 기본 VDS 공급자 에서 발생할 수 있습니다. 가능한 반환 값은 다음과 같습니다.

반환 코드 Description
S_OK
메서드가 완료되었습니다.

설명

가상 디스크는 다음 상태 중 하나에 있는 경우에만 압축할 수 있습니다.

  • 분리됨(오프라인 모드)
  • 읽기 전용 액세스(온라인 모드)로 연결 및 열기
다른 상태이면 압축 작업이 실패합니다.

가상 디스크는 확장 가능(동적이라고도 함) 또는 차이점이 있는 가상 디스크여야 합니다.

작업을 안전하게 중단하고 나중에 다시 실행할 수 있습니다. 작업이 중단되고 백업 파일이 다시 열리면 파일이 열릴 때 파일 크기가 줄어들 수 있습니다.

작업은 가상 디스크의 크기와 조작이 필요한 사용되지 않는 블록 수에 따라 CPU 집약적이거나 I/O 집약적일 수 있습니다.

이 메서드는 사용되지 않는 공간을 회수하여 가상 디스크의 백업 저장소 파일 크기를 줄입니다. 이 메서드가 분리된 가상 디스크에 대해 호출되는 경우 데이터를 작성하는 데 사용되지 않은 파일의 공간만 회수할 수 있습니다. 읽기 전용 액세스 권한으로 연결되고 열린 가상 디스크에 대해 호출되는 경우 한때 사용되었지만 나중에 해제된 공간을 회수할 수 있습니다. 읽기 전용 액세스로 연결되고 열린 가상 디스크에 대해 이 메서드를 호출하면 백업 저장소 파일의 최대 사용 가능한 공간이 회수됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 vds.h
라이브러리 Uuid.lib

추가 정보

IVdsOpenVDisk