Метод 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 . Возможные возвращаемые значения включают следующие.

Возвращаемый код или значение Описание
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
Параметру bRevertOnClose должно быть присвоено значение true, только если установлен флаг тома VDS_VF_HIDDEN или VDS_VF_READONLY .
VDS_E_REVERT_ON_CLOSE_SET
0x80042459L
Для некоторых флагов тома уже задано значение 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, то установка одного из флагов на томе применяется только к конкретному тому.
В следующей таблице указаны область каждого флага тома на базовых дисках MBR, базовых дисках GPT и динамических дисках MBR или 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

См. также раздел

IVdsAdvancedDisk::Clean

IVdsVolume

IVdsVolume::ClearFlags

VDS_VOLUME_FLAG