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

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

볼륨 플래그를 설정합니다.

구문

HRESULT SetFlags(
  [in] ULONG ulFlags,
  [in] BOOL  bRevertOnClose
);

매개 변수

[in] ulFlags

VDS_VOLUME_FLAG 열거된 플래그입니다. 호출자는 다음 플래그를 설정할 수 있습니다.

  • VDS_VF_LBN_REMAP_ENABLED
  • VDS_VF_HIDDEN
  • VDS_VF_READONLY
  • VDS_VF_NO_DEFAULT_DRIVE_LETTER
  • VDS_VF_INSTALLABLE
  • VDS_VF_SHADOW_COPY

[in] bRevertOnClose

TRUE이면 플래그가 일시적으로 설정됩니다. VDS는 호출자가 볼륨 개체에 대한 마지막 참조를 해제하거나, IVdsVolume::ClearFlags를 호출하거나, 전체 디스크에 플래그가 설정된 경우를 제외하고 볼륨을 분리할 때 각 플래그를 이전 상태로 다시 설정합니다(자세한 내용은 설명 섹션의 표 참조). 플래그가 전체 디스크에 설정된 경우 플래그를 다시 설정하려면 IVdsVolume::ClearFlags 메서드를 호출해야 합니다.

반환 값

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

반환 코드/값 Description
S_OK
플래그가 설정됩니다.
VDS_E_LBN_REMAP_ENABLED_FLAG
0x80042456L
공급자는 VDS_VF_LBN REMAP_ENABLED 볼륨 플래그를 지원하지 않습니다.
VDS_E_NO_DRIVELETTER_FLAG
0x80042457L
공급자는 VDS_VF_NO DRIVELETTER 볼륨 플래그를 지원하지 않습니다.
VDS_E_REVERT_ON_CLOSE
0x80042458L
bRevertOnCloseVDS_VF_HIDDEN 또는 VDS_VF_READONLY 볼륨 플래그가 설정된 경우에만 true로 설정해야 합니다.
VDS_E_REVERT_ON_CLOSE_SET
0x80042459L
일부 볼륨 플래그는 이미 true로 설정되어 있습니다. 먼저 이러한 플래그를 지우고 이 메서드를 호출하고 bRevertOnClose 매개 변수를 true로 다시 설정해야 합니다. VDS_E_INVALID_OPERATION 반환 값은 이 조건을 나타낼 수도 있습니다.

설명

VDS_VF_READONLY, VDS_VF_HIDDENVDS_VF_NO_DEFAULT_DRIVE_LETTER 플래그는 디스크 유형(기본 또는 동적) 및 파티션 스타일(MBR 또는 GPT)에 따라 다르게 scope. scope 다음 조건에 설명된 대로 디스크 기반 또는 볼륨 기반입니다.

  • 디스크가 기본 및 MBR인 경우 볼륨에서 이러한 플래그 중 하나를 설정하면 현재 볼륨과 디스크에 생성된 지정된 특성이 있는 모든 이후 볼륨에 영향을 줍니다.
  • 디스크가 기본 및 GPT, 동적 및 MBR 또는 동적 및 GPT인 경우 볼륨에 플래그 중 하나를 설정하면 해당 특정 볼륨에만 적용됩니다.
다음 표에서는 MBR 기본 디스크, GPT 기본 디스크 및 MBR 또는 GPT 동적 디스크에서 각 볼륨 플래그의 scope 식별합니다.
플래그 MBR 기본 디스크 GPT 기본 디스크 MBR 또는 GPT 동적 디스크
VDS_VF_LBN_REMAP_ENABLED 수동으로 설정할 수 없습니다. 수동으로 설정할 수 없습니다. 타사 볼륨 관리자가 지원하는 경우 볼륨에 설정합니다.
VDS_VF_HIDDEN 전체 디스크에 설정합니다. 볼륨에서 설정합니다(데이터 파티션만 해당). 볼륨에 설정합니다.
VDS_VF_READONLY 전체 디스크에 설정합니다. 볼륨에서 설정합니다(데이터 파티션만 해당). 볼륨에 설정합니다.
VDS_VF_NO_DEFAULT_DRIVE_LETTER 전체 디스크에 설정합니다. 파티션에서 설정합니다. VDS_VOLUME_FLAG 참조하세요.
VDS_VF_SHADOW_COPY 전체 디스크에 설정합니다. 볼륨에서 설정합니다(데이터 파티션만 해당). 볼륨에 설정합니다.
VDS_VF_INSTALLABLE 수동으로 설정할 수 없습니다. 수동으로 설정할 수 없습니다. 볼륨에 설정합니다.
 

bRevertOnCloseTRUE이고 디스크가 MBR 기본 디스크이고 볼륨이 삭제된 경우 플래그는 여전히 전체 디스크에 설정되며 플래그는 디스크에 생성된 모든 새 볼륨에 적용됩니다. 그런 다음 IVdsAdvancedDisk::Clean 을 사용하여 플래그를 지워야 합니다.

동적 디스크에 부팅 볼륨을 만들려면 볼륨에 대한 VDS_VF_INSTALLABLE 플래그를 설정한 다음 IVdsVolumeMF::Format 메서드를 호출하여 볼륨의 형식을 지정해야 합니다.

볼륨에 다음 플래그 중 하나 이상이 포함되어 있으면 이 메서드가 실패합니다.

  • VDS_VF_SYSTEM
  • VDS_VF_BOOT
  • VDS_VF_PAGEFILE
  • VDS_VF_HIBERNATION
  • VDS_VF_CRASHDUMP

bRevertOnCloseTRUE가 아닌 한 VDS_VF_HIDDEN 또는 VDS_VF_READONLY 지정하면 볼륨을 강제로 분리하고 다시 탑재합니다.

요구 사항

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

추가 정보

IVdsAdvancedDisk::Clean

IVdsVolume

IVdsVolume::ClearFlags

VDS_VOLUME_FLAG