Share via


IVdsPack::MigrateDisks 메서드(vds.h)

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

디스크 집합을 한 팩에서 다른 팩으로 마이그레이션합니다.

구문

HRESULT MigrateDisks(
  [in]  VDS_OBJECT_ID *pDiskArray,
  [in]  LONG          lNumberOfDisks,
  [in]  VDS_OBJECT_ID TargetPack,
  [in]  BOOL          bForce,
  [in]  BOOL          bQueryOnly,
  [out] HRESULT       *pResults,
  [out] BOOL          *pbRebootNeeded
);

매개 변수

[in] pDiskArray

GUID 배열에 대한 포인터입니다. 각 디스크에 대해 하나씩.

[in] lNumberOfDisks

마이그레이션할 디스크 수입니다.

[in] TargetPack

pack 개체의 GUID입니다.

[in] bForce

이 매개 변수를 TRUE로 설정하면 VDS는 이 메서드의 모든 오류를 무시하고 디스크를 무조건 마이그레이션하려고 시도합니다. FALSE로 설정하면 작업이 진행되지 않습니다. 경우에 따라 강제 마이그레이션으로 인해 데이터가 손실될 수 있습니다.

[in] bQueryOnly

이 매개 변수를 TRUE로 설정하면 마이그레이션이 수행되지 않습니다. FALSE로 설정하면 작업이 진행됩니다.

[out] pResults

호출자가 할당한 HRESULT 값 배열의 주소입니다. 배열의 요소 수는 lNumberOfDisks입니다.

디스크를 마이그레이션할 수 있거나 성공적으로 마이그레이션된 경우 해당 배열 요소는 S_OK 받습니다. 그렇지 않으면 공급자가 반환한 경고 코드 또는 오류 코드를 받습니다. 추가 결과 코드 목록은 반환 값을 참조하세요.

[out] pbRebootNeeded

이 매개 변수가 TRUE로 설정된 경우 작업을 완료하려면 컴퓨터를 다시 시작해야 합니다. FALSE로 설정하면 작업을 다시 시작하지 않고 완료됩니다.

반환 값

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

반환 코드/값 Description
S_OK
마이그레이션이 성공적으로 완료되었습니다.
S_FALSE
하나 이상의 디스크를 변환할 수 없거나 경고와 함께 변환할 수 있습니다.
VDS_E_DISK_NOT_ONLINE
0x8004244BL
디스크 중 하나를 사용할 수 없습니다.
VDS_E_IMPORT_SET_INCOMPLETE
0x80042451L
외장 팩에 있는 디스크의 하위 집합을 가져오려고 했습니다.
 

pResults를 통해 다음 경고 및 오류를 반환할 수 있습니다.

반환 코드/값 Description
VDS_S_BOOT_PARTITION_NUMBER_CHANGE
0x00042436L
마이그레이션 작업의 결과로 부팅 파티션의 파티션 번호가 변경되었습니다.
VDS_E_NO_FREE_SPACE
0x80042437L
선택한 디스크에 작업을 완료할 수 있는 충분한 공간이 없습니다.
VDS_E_ACTIVE_PARTITION
0x80042438L
선택한 디스크에서 활성 파티션이 검색되었으며 활성 운영 체제를 부팅하는 데 사용되는 활성 파티션이 아닙니다.
VDS_E_PARTITION_OF_UNKNOWN_TYPE
0x80042439L
파티션 정보를 읽을 수 없습니다.
VDS_E_LEGACY_VOLUME_FORMAT
0x8004243AL
선택한 디스크에서 알 수 없는 형식의 파티션이 검색되었습니다.
VDS_E_NON_CONTIGUOUS_DATA_PARTITIONS
0x8004243BL
선택한 GPT 디스크에는 기본이 아닌 데이터 파티션이 포함되며, 이 파티션 앞에는 하나 이상의 기본 데이터 파티션이 뒤따릅니다.
VDS_E_MIGRATE_OPEN_VOLUME
0x8004243CL
선택한 디스크의 볼륨을 열 수 없습니다.

설명

VDS는 이 메서드를 구현합니다.

단일 팩에는 하나의 기본 디스크만 있을 수 있습니다. 따라서 기본 팩과 동적 팩 간에 한 번에 하나의 디스크만 마이그레이션할 수 있습니다.

기본 디스크를 동적 디스크 형식으로 변환할 때 이 작업을 강제로 수행해야 하며 디스크 끝에 LDM 데이터베이스에 충분한 공간이 부족합니다. bForce 매개 변수를 true로 설정하고 공간 제한에도 불구하고 강제로 작업을 수행합니다. 마찬가지로 OEM 파티션이 양쪽에 여유 공간이 있거나 데이터 볼륨이 있는 MBR 디스크의 중간에 있는 경우입니다.

동적 디스크를 동적 팩으로 마이그레이션한 후 IVdsPack::GetProperties 메서드를 사용하여 원본 또는 대상 팩이 이제 온라인 팩인지 확인해야 합니다.

MigrateDisks 메서드를 사용하여 팩에 외장 디스크를 추가하는 방법에 대한 자세한 내용은 팩에 외장 디스크 추가를 참조하세요.

요구 사항

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

추가 정보

IVdsPack

IVdsPack::GetProperties