다음을 통해 공유


IVdsPack2::CreateVolume2 메서드(vds.h)

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

선택적 맞춤 매개 변수를 사용하여 디스크 팩에 볼륨을 만듭니다.

구문

HRESULT CreateVolume2(
  [in]  VDS_VOLUME_TYPE type,
  [in]  VDS_INPUT_DISK  *pInputDiskArray,
  [in]  LONG            lNumberOfDisks,
  [in]  ULONG           ulStripeSize,
  [in]  ULONG           ulAlign,
  [out] IVdsAsync       **ppAsync
);

매개 변수

[in] type

만들 볼륨의 형식을 나타내는 VDS_VOLUME_TYPE 열거형의 값입니다.

[in] pInputDiskArray

볼륨을 만들 디스크를 나타내는 VDS_INPUT_DISK 구조체의 배열입니다.

참고 Windows는 단일 볼륨에서 32개 이하의 디스크를 사용할 수 있는 제한을 적용하므로 이 배열의 크기는 32개 이하여야 합니다.
 

[in] lNumberOfDisks

pInputDiskArray 매개 변수가 가리키는 배열의 요소 수입니다.

[in] ulStripeSize

새 볼륨의 스트라이프 크기(바이트)입니다.

참고 형식이 VDS_VT_STRIPE 또는 VDS_VT_PARITY 경우 스트라이프 크기는 65536이어야 합니다. 그렇지 않으면 스트라이프 크기는 0이어야 합니다.
 

[in] ulAlign

볼륨 맞춤의 바이트 수입니다. 이 매개 변수는 선택 사항이며 0일 수 있습니다. 0을 지정하면 서버는 볼륨을 만든 디스크의 크기에 따라 맞춤 값을 결정합니다.

Windows 7, Windows Server 2008 R2, Windows Vista 및 Windows Server 2008: 기본 디스크에서 CreateVolume2 메서드는 이 매개 변수와 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vds\Alignment 레지스트리 키를 무시합니다. 알려진 문제이며 해결 중입니다. 해결 방법으로 IVdsAdvancedDisk::CreatePartition 또는 IVdsCreatePartitionEx::CreatePartitionEx 메서드를 사용하여 올바르게 정렬되도록 기본 디스크에 파티션을 만듭니다. 동적 파티션 및 볼륨은 다음 레지스트리 키 아래의 값을 사용하여 정렬됩니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vds\Alignment

기본 맞춤은 디스크가 4GB 이상인 경우 1MB, 디스크가 4GB보다 작은 경우 64KB입니다.

[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 값을 테스트할 수 있습니다.

반환 값

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

반환 코드/값 Description
S_OK
볼륨이 성공적으로 만들어졌습니다.
VDS_S_NO_NOTIFICATION
0x00042517L
볼륨 도착 알림이 수신되지 않았습니다. IVdsService::Refresh를 호출해야 할 수 있습니다.
VDS_S_UPDATE_BOOTFILE_FAILED
0x00042434L
볼륨이 성공적으로 만들어졌지만 VDS가 BCD(부팅 구성 데이터) 저장소에서 부팅 옵션을 업데이트하지 못했습니다.
VDS_E_ALIGN_IS_ZERO
0x80042590L
지정된 맞춤이 0입니다.
VDS_E_ALIGN_NOT_A_POWER_OF_TWO
0x8004258FL
지정된 맞춤이 2의 힘이 아닙니다.
VDS_E_DISK_NOT_FOUND_IN_PACK
0x8004252DL
지정된 디스크가 동일한 팩에 속하지 않습니다.
VDS_E_DMADMIN_METHOD_CALL_FAILED
0x80042420L
LDM 서비스가 메서드에 실패했습니다.
VDS_E_EXTENT_SIZE_LESS_THAN_MIN
0x80042433L
전달된 익스텐트 크기가 너무 작습니다.
VDS_E_INVALID_DISK_COUNT
0x80042526L
지정된 디스크 수가 이 작업에 유효하지 않습니다.
VDS_E_INVALID_MEMBER_COUNT
0x80042522L
볼륨의 멤버 수는 0보다 커야 합니다.
VDS_E_INVALID_MEMBER_ORDER
0x80042524L
멤버 인덱스는 단조롭게 증가하고 0으로 시작해야 합니다.
VDS_E_INVALID_OPERATION
0x80042415L
전달된 디스크는 CD-ROM 또는 DVD 디바이스입니다.
VDS_E_INVALID_PACK
0x8004251AL
이 디스크 팩에서는 이 작업이 허용되지 않습니다.
VDS_E_INVALID_PLEX_COUNT
0x80042521L
볼륨의 플렉스 수는 0보다 커야 합니다.
VDS_E_INVALID_PLEX_ORDER
0x80042523L
플렉스 인덱스는 단조롭게 증가하고 0으로 시작해야 합니다.
VDS_E_INVALID_STRIPE_SIZE
0x80042525L
스트라이프 크기(바이트)는 스트라이프 및 RAID-5 볼륨 형식의 경우 2의 힘이어야 하며 다른 모든 볼륨 형식의 경우 0이어야 합니다.
VDS_E_MISSING_DISK
0x80042454L
지정된 디스크가 없습니다.
VDS_E_NO_MEDIA
0x80042412L
디스크 배열을 통해 전달되는 이동식 드라이브에는 미디어가 없습니다.
VDS_E_NOT_ENOUGH_SPACE
0x8004240FL
디스크 중 하나에 공간이 부족합니다.
VDS_E_NOT_SUPPORTED
0x80042400L
볼륨 유형은 지원되지 않습니다.
VDS_E_OBJECT_NOT_FOUND
0x80042405L
전달된 디스크 중 하나 이상을 찾을 수 없습니다.
VDS_E_ONE_EXTENT_PER_DISK
0x80042531L
단일 디스크는 동일한 볼륨의 여러 멤버 또는 여러 플렉스에 기여할 수 없습니다.
VDS_E_PACK_OFFLINE
0x80042444L
대상 팩에 액세스할 수 없습니다.
VDS_E_PARTITION_LIMIT_REACHED
0x80042407L
호출자가 추가 주 파티션 또는 확장 파티션을 만들려고 할 때 최대 파티션 수(기본 파티션 또는 확장 파티션이 있는 기본 파티션)가 이미 존재합니다.
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
동적 공급자 캐시가 손상되었습니다.
VDS_E_VOLUME_DISK_COUNT_MAX_EXCEEDED
0x80042529L
볼륨당 32개 이하의 디스크가 허용되지 않습니다.
VDS_E_VOLUME_TOO_SMALL
0x8004242CL
볼륨 크기가 너무 작습니다.

요구 사항

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

추가 정보

IVdsPack2

IVdsPack::CreateVolume