다음을 통해 공유


IVdsVolume::Shrink 메서드(vds.h)

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

볼륨 및 모든 플렉스의 크기를 줄이고 해제된 익스텐트 공간을 여유 공간으로 반환합니다.

구문

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

매개 변수

[in] ullNumberOfBytesToRemove

바이트 감소 크기입니다.

[out] ppAsync

IVdsAsync 인터페이스 포인터의 주소입니다. VDS는 반환 시 인터페이스를 초기화합니다. 호출자는 인터페이스를 해제해야 합니다. 이 인터페이스를 사용하여 작업의 상태 취소, 대기 또는 쿼리할 수 있습니다. IVdsAsync::Wait가 호출되고 성공 HRESULT 값이 반환되는 경우 각 인터페이스 포인터에서 IUnknown::Release 메서드를 호출하여 VDS_ASYNC_OUTPUT 구조에 반환된 인터페이스를 해제해야 합니다. 그러나 Wait가 오류 HRESULT 값을 반환하거나 WaitpHrResult 매개 변수가 오류 HRESULT 값을 수신하는 경우 VDS_ASYNC_OUTPUT 구조의 인터페이스 포인터는 NULL이며 해제할 필요가 없습니다. Winerror.h에 정의된 SUCCEEDED 및 FAILED 매크로를 사용하여 성공 또는 실패 HRESULT 값을 테스트할 수 있습니다.

반환 값

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

반환 코드/값 Description
S_OK
메서드가 완료되었습니다.
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
공급자의 캐시가 손상되었습니다. 연결된 디바이스에 대한 정보를 캐시하는 공급자 내부의 소프트웨어 또는 통신 문제를 나타냅니다. 호출자는 IVdsHwProvider::Reenumerate 메서드와 IVdsHwProvider::Refresh 메서드를 사용하여 캐시를 복원할 수 있습니다.
VDS_E_CANNOT_SHRINK
0x8004251EL
파일 시스템에서 지원하지 않으므로 볼륨을 축소할 수 없습니다.
VDS_E_DISK_REMOVEABLE
0x8004255AL
이동식 미디어에서는 작업이 지원되지 않습니다.
VDS_E_SHRINK_SIZE_LESS_THAN_MIN
0x80042573L
지정된 축소 크기가 허용되는 최소 축소 크기보다 작습니다.
VDS_E_SHRINK_SIZE_TOO_BIG
0x80042574L
지정된 축소 크기가 너무 커서 볼륨이 최소 볼륨 크기보다 작아집니다.

설명

이 메서드는 IVdsVolumeShrink::Shrink 메서드에 대한 래퍼입니다. IVdsVolume::Shrink를 호출하는 경우 uNumberOfBytesToRemove 매개 변수의 값은 IVdsVolumeShrink::ShrinkullDesiredNumberOfReclaimableBytesullMinNumberOfReclaimableBytes 매개 변수에 사용됩니다.

축소 및 확장 작업은 NTFS 및 RAW 볼륨에서만 지원됩니다.

이 메서드를 사용하여 파일 시스템 및 볼륨을 축소합니다. VDS가 볼륨을 축소하지 못하면 파일 시스템을 축소하지 않고 작업을 중지합니다.

각 볼륨에서 한 번에 하나의 축소 또는 조각 모음 작업만 수행할 수 있습니다. Windows Server 2008 및 Windows Vista: 컴퓨터에서 한 번에 하나의 축소 또는 조각 모음 작업만 수행할 수 있습니다.

uNumberOfBytesToRemove가 0이면 메서드가 실패합니다. 그렇지 않으면 VDS는 uNumberOfBytesToRemove 를 파일 시스템 클러스터 크기의 배수로 반올림합니다.

호출이 비동기 작업을 시작하지 않더라도 구현자는 이 메서드에 대한 IVdsAsync 인터페이스에 대한 포인터를 반환해야 합니다.

IVdsVolumeShrink::QueryMaxReclaimableBytes 메서드를 사용하여 축소 작업으로 회수할 바이트 수를 예측할 수 있습니다. 그러나 QueryMaxReclaimableBytes 는 실제로 사용할 수 있는 것보다 더 많은 바이트를 반환할 수 있습니다.

요구 사항

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

추가 정보

IVdsAsync

IVdsVolume

IVdsVolume::Extend