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 구조체의 배열입니다.
[in] lNumberOfDisks
pInputDiskArray 매개 변수가 가리키는 배열의 요소 수입니다.
[in] ulStripeSize
새 볼륨의 스트라이프 크기(바이트)입니다.
[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 값을 반환하거나 Wait의 pHrResult 매개 변수가 오류 HRESULT 값을 수신하는 경우 VDS_ASYNC_OUTPUT 구조의 인터페이스 포인터는 NULL이며 해제할 필요가 없습니다. Winerror.h에 정의된 SUCCEEDED 및 FAILED 매크로를 사용하여 성공 또는 실패 HRESULT 값을 테스트할 수 있습니다.
반환 값
이 메서드는 E_INVALIDARG 또는 E_OUTOFMEMORY 같은 표준 HRESULT 값과 VDS별 반환 값을 반환할 수 있습니다. HRESULT_FROM_WIN32 매크로를 사용하여 변환된 시스템 오류 코드를 반환할 수도 있습니다. 오류는 VDS 자체 또는 사용 중인 기본 VDS 공급자 에서 발생할 수 있습니다. 가능한 반환 값은 다음과 같습니다.
반환 코드/값 | Description |
---|---|
|
볼륨이 성공적으로 만들어졌습니다. |
|
볼륨 도착 알림이 수신되지 않았습니다. IVdsService::Refresh를 호출해야 할 수 있습니다. |
|
볼륨이 성공적으로 만들어졌지만 VDS가 BCD(부팅 구성 데이터) 저장소에서 부팅 옵션을 업데이트하지 못했습니다. |
|
지정된 맞춤이 0입니다. |
|
지정된 맞춤이 2의 힘이 아닙니다. |
|
지정된 디스크가 동일한 팩에 속하지 않습니다. |
|
LDM 서비스가 메서드에 실패했습니다. |
|
전달된 익스텐트 크기가 너무 작습니다. |
|
지정된 디스크 수가 이 작업에 유효하지 않습니다. |
|
볼륨의 멤버 수는 0보다 커야 합니다. |
|
멤버 인덱스는 단조롭게 증가하고 0으로 시작해야 합니다. |
|
전달된 디스크는 CD-ROM 또는 DVD 디바이스입니다. |
|
이 디스크 팩에서는 이 작업이 허용되지 않습니다. |
|
볼륨의 플렉스 수는 0보다 커야 합니다. |
|
플렉스 인덱스는 단조롭게 증가하고 0으로 시작해야 합니다. |
|
스트라이프 크기(바이트)는 스트라이프 및 RAID-5 볼륨 형식의 경우 2의 힘이어야 하며 다른 모든 볼륨 형식의 경우 0이어야 합니다. |
|
지정된 디스크가 없습니다. |
|
디스크 배열을 통해 전달되는 이동식 드라이브에는 미디어가 없습니다. |
|
디스크 중 하나에 공간이 부족합니다. |
|
볼륨 유형은 지원되지 않습니다. |
|
전달된 디스크 중 하나 이상을 찾을 수 없습니다. |
|
단일 디스크는 동일한 볼륨의 여러 멤버 또는 여러 플렉스에 기여할 수 없습니다. |
|
대상 팩에 액세스할 수 없습니다. |
|
호출자가 추가 주 파티션 또는 확장 파티션을 만들려고 할 때 최대 파티션 수(기본 파티션 또는 확장 파티션이 있는 기본 파티션)가 이미 존재합니다. |
|
동적 공급자 캐시가 손상되었습니다. |
|
볼륨당 32개 이하의 디스크가 허용되지 않습니다. |
|
볼륨 크기가 너무 작습니다. |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | vds.h |
라이브러리 | Uuid.lib |