IVdsVolume::SetFlags 方法 (vds.h)
[从 Windows 8 和 Windows Server 2012 开始,虚拟磁盘服务 COM 接口由 Windows 存储管理 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,则临时设置标志。 当调用方释放对卷对象的最后一个引用、调用 IVdsVolume::ClearFlags 或卸载卷时,VDS 会将每个标志重置为以前的状态,除非在整个磁盘上设置了标志, (有关详细信息) 请参阅“备注”部分中的表。 在整个磁盘上设置标志时,必须调用 IVdsVolume::ClearFlags 方法以重置标志。
返回值
此方法可以返回标准 HRESULT 值,例如E_INVALIDARG或E_OUTOFMEMORY,以及 特定于 VDS 的返回值。 它还可以使用 HRESULT_FROM_WIN32 宏返回转换的系统错误代码。 错误可能源自 VDS 本身或正在使用的基础 VDS 提供程序 。 可能的返回值包括以下内容。
返回代码/值 | 说明 |
---|---|
|
设置标志。 |
|
提供程序不支持 VDS_VF_LBN REMAP_ENABLED 卷标志。 |
|
提供程序不支持 VDS_VF_NO DRIVELETTER 卷标志。 |
|
bRevertOnClose 仅当 设置了VDS_VF_HIDDEN 或 VDS_VF_READONLY 卷标志时,才应设置为 true。 |
|
某些卷标志已设置为 true。 必须先清除这些标志,然后调用此方法,并将 bRevertOnClose 参数再次设置为 true。 VDS_E_INVALID_OPERATION返回值也可以指示此条件。 |
注解
VDS_VF_READONLY、VDS_VF_HIDDEN和VDS_VF_NO_DEFAULT_DRIVE_LETTER标志的范围因磁盘类型 (基本或动态) 和分区样式 (MBR 或 GPT) 而异。 范围基于磁盘或卷,如以下条件所述:
- 如果磁盘是基本磁盘和 MBR,则在卷上设置这些标志之一会影响当前卷和在磁盘上创建具有指定属性的所有未来卷。
- 如果磁盘是基本磁盘和 GPT、动态和 MBR 或动态和 GPT,则在卷上设置其中一个标志仅适用于该特定卷。
标志 | 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 | 无法设置。 | 无法设置。 | 在卷上设置。 |
如果 bRevertOnClose 为 TRUE ,并且磁盘是 MBR 基本磁盘,然后删除卷,则标志仍在整个磁盘上设置,标志将应用于在磁盘上创建的任何新卷。 然后,必须使用 IVdsAdvancedDisk::Clean 清除标志。
若要在动态磁盘上创建启动卷,必须设置 卷的VDS_VF_INSTALLABLE 标志,然后通过调用 IVdsVolumeMF::Format 方法格式化卷。
如果卷包含以下一个或多个标志,此方法将失败:
- VDS_VF_SYSTEM
- VDS_VF_BOOT
- VDS_VF_PAGEFILE
- VDS_VF_HIBERNATION
- VDS_VF_CRASHDUMP
指定 VDS_VF_HIDDEN 或 VDS_VF_READONLY 将强制卸载和重新装载卷,除非 bRevertOnClose 为 TRUE。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | vds.h |
Library | Uuid.lib |