Share via


IVdsCreatePartitionEx::CreatePartitionEx 메서드(vds.h)

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

기본 디스크에 파티션을 만듭니다.

이 메서드는 IVdsAdvancedDisk::CreatePartition 메서드를 대체합니다.

구문

HRESULT CreatePartitionEx(
  [in]  ULONGLONG                   ullOffset,
  [in]  ULONGLONG                   ullSize,
  [in]  ULONG                       ulAlign,
  [in]  CREATE_PARTITION_PARAMETERS *para,
  [out] IVdsAsync                   **ppAsync
);

매개 변수

[in] ullOffset

파티션 오프셋(바이트)입니다. 오프셋이 정렬되지 않고 ulAlign 매개 변수가 지정되지 않은 경우 오프셋은 파티션이 만들어진 디스크의 크기에 따라 가장 가까운 맞춤 경계로 반올림되거나 아래로 반올림됩니다. 자세한 내용은 아래 설명 부분을 참조하십시오.

Windows Server 2003: 기본 디스크의 첫 번째 파티션만 정렬할 수 있습니다. 동적 디스크를 정렬할 수 없습니다. 기본 디스크의 다른 파티션의 경우 ulAlign 매개 변수를 사용하여 맞춤을 지정할 수 없습니다. 오프셋은 MBR(마스터 부팅 레코드) 디스크의 가장 가까운 실린더 경계 또는 GPT(GUID 파티션 테이블) 디스크의 가장 가까운 섹터 경계로 반올림됩니다.

호출자가 ullOffsetulAlign 매개 변수를 모두 지정하는 경우 오프셋은 첫 번째 원통 내에 있어야 합니다.

[in] ullSize

새 파티션의 크기(바이트)입니다.

[in] ulAlign

맞춤 크기(바이트)입니다.

Windows Server 2003: 이 매개 변수를 지정하면 공급자는 파티션 오프셋을 가장 가까운 맞춤 경계로 반올림합니다. 그렇지 않으면 가장 가까운 실린더 경계에 연결됩니다.

디스크의 시작 부분에 파티션 크기를 수용할 수 있는 충분한 공간이 있고 ulAlign 매개 변수가 지정되었지만 ullOffset 매개 변수가 지정되지 않은 경우 CreatePartitionEx 호출이 실패합니다.

[in] para

CREATE_PARTITION_PARAMETERS 구조체에서 정의한 매개 변수에 대한 포인터입니다.

[out] ppAsync

반환 시 VDS가 초기화하는 IVdsAsync 인터페이스 포인터의 주소입니다. 호출자는 인터페이스를 해제해야 합니다. 이 포인터를 사용하여 작업의 상태 취소, 대기 또는 쿼리합니다.

반환 값

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

반환 코드/값 Description
S_OK
파티션이 성공적으로 만들어졌습니다.
VDS_E_NO_MEDIA
0x80042412L
이동식 드라이브에는 미디어가 없습니다.
VDS_E_DISK_IS_READ_ONLY
0x8004280BL
디스크가 읽기 전용이므로 파티션을 만들 수 없습니다.
VDS_E_INVALID_OPERATION
0x80042415L
미디어는 이 작업을 지원하지 않습니다. 예를 들어 호출자는 CD-ROM에 파티션을 만들 수 없습니다.
VDS_E_NOT_SUPPORTED
0x80042400L
이동식 미디어에서 두 번째 파티션을 만드는 것은 지원되지 않습니다. 또는 이 오류는 디스크가 동적 디스크임을 나타냅니다.
VDS_E_PARTITION_LIMIT_REACHED
0x80042407L
호출자가 추가 주 파티션 또는 확장 파티션을 만들려고 할 때 최대 파티션 수(기본 파티션 또는 확장 파티션이 있는 기본 파티션)가 이미 존재합니다.
VDS_S_UPDATE_BOOTFILE_FAILED
0x00042434L
파티션이 성공적으로 만들어졌지만 VDS가 BCD(부팅 구성 데이터) 저장소에서 부팅 옵션을 업데이트하지 못했습니다.

Windows Server 2003: 부팅 옵션은 itanium 시스템의 x86 또는 x64 시스템 또는 NVRAM의 boot.ini 파일에 저장됩니다.

설명

이 메서드는 GPT 또는 MBR 파티션 구성표가 있는 기본 디스크에서 작동합니다.

Windows Server 2003: 호출자는 MBR 디스크의 첫 번째 파티션만 정렬할 수 있으며 첫 번째 원통 또는 두 번째 실린더의 시작 부분에 시작 오프셋을 실린더 경계에 배치해야 합니다.

ullOffset 매개 변수가 지정되고 해당 값이system\CurrentControlSet\ServicesVds\\Alignment 레지스트리 하위 키의 HKEY_LOCAL_MACHINE 값을\ 사용하여 정렬되지 않은 경우 해당 값은 다음 값을 사용하여 자동으로 정렬됩니다. 기본 맞춤은 디스크가 4GB 이상인 경우 1MB, 디스크가 4GB보다 작은 경우 64KB입니다.

Windows Server 2003: 정렬되지 않은 파티션 오프셋은 MBR 디스크의 가장 가까운 실린더 경계 또는 GPT 디스크의 가장 가까운 섹터 경계로 반올림됩니다.

동적 디스크가 읽기 전용이고 오프라인인 경우 CreatePartitionEx를 호출하기 전에 다음과 같이 읽기/쓰기가 가능하고 온라인으로 전환되어야 합니다.

  1. 읽기 전용 비트를 지웁다. (VDS_DISK_PROP 구조체의 VDS_DF_READ_ONLY플래그입니다.)
  2. IVdsDiskOnline::Online 메서드를 호출합니다.

요구 사항

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

추가 정보

IVdsAdvancedDisk::CreatePartition

IVdsAsync

IVdsCreatePartitionEx