Метод IVdsVolume::SetFlags (vds.h)
[Начиная с Windows 8 и Windows Server 2012 COM-интерфейс службы виртуальных дисков замечается API управления хранилищем Windows.]
Задает флаги тома.
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 для сброса флагов.
Этот метод может возвращать стандартные значения HRESULT, такие как E_INVALIDARG или E_OUTOFMEMORY, а также возвращаемые значения VDS. Он также может возвращать преобразованные коды системных ошибок с помощью макроса HRESULT_FROM_WIN32 . Ошибки могут возникать из самого VDS или из используемого базового поставщика VDS . Возможные возвращаемые значения включают следующие.
Возвращаемый код или значение | Описание |
---|---|
|
Флаги установлены. |
|
Поставщик не поддерживает флаг тома VDS_VF_LBN REMAP_ENABLED . |
|
Поставщик не поддерживает флаг тома VDS_VF_NO DRIVELETTER . |
|
Параметру bRevertOnClose должно быть присвоено значение true, только если установлен флаг тома VDS_VF_HIDDEN или VDS_VF_READONLY . |
|
Для некоторых флагов тома уже задано значение true. Сначала необходимо очистить эти флаги, а затем вызвать этот метод и снова задать для параметра bRevertOnClose значение true. Это условие также может указывать на VDS_E_INVALID_OPERATION возвращаемое значение. |
Флаги VDS_VF_READONLY, VDS_VF_HIDDEN и VDS_VF_NO_DEFAULT_DRIVE_LETTER область по-разному в зависимости от типа диска (базовый или динамический) и стиля секции (MBR или GPT). Область используется на диске или томе, как описано в следующих условиях:
- Если диск является базовым и MBR, установка одного из этих флагов на томе влияет на текущий том и все будущие тома с указанным атрибутом, созданным на диске.
- Если диск является базовым и GPT, dynamic и MBR или dynamic и GPT, то установка одного из флагов на томе применяется только к конкретному тому.
Flag | Базовые диски 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 |
Header | vds.h |
Библиотека | Uuid.lib |