Compartir a través de


Método IVdsVolume::SetFlags (vds.h)

[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]

Establece las marcas de volumen.

Sintaxis

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

Parámetros

[in] ulFlags

Marcas enumeradas por VDS_VOLUME_FLAG. Los autores de llamadas pueden establecer las marcas siguientes:

  • 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

Si es TRUE, las marcas se establecen temporalmente. VDS restablece cada marca en el estado anterior cuando el autor de la llamada libera la última referencia al objeto volume, llama a IVdsVolume::ClearFlags o desmonta el volumen, excepto cuando la marca está establecida en todo el disco (vea la tabla de la sección Comentarios para obtener más información). Cuando se establece la marca en todo el disco, se debe llamar al método IVdsVolume::ClearFlags para restablecer las marcas.

Valor devuelto

Este método puede devolver valores HRESULT estándar, como E_INVALIDARG o E_OUTOFMEMORY, y valores devueltos específicos de VDS. También puede devolver códigos de error del sistema convertidos mediante la macro HRESULT_FROM_WIN32 . Los errores pueden originarse en VDS en sí o en el proveedor de VDS subyacente que se está usando. Entre los valores devueltos posibles se incluyen los siguientes.

Código o valor devuelto Descripción
S_OK
Se establecen las marcas.
VDS_E_LBN_REMAP_ENABLED_FLAG
0x80042456L
El proveedor no admite la marca de volumen VDS_VF_LBN REMAP_ENABLED .
VDS_E_NO_DRIVELETTER_FLAG
0x80042457L
El proveedor no admite la marca de volumen DRIVELETTER de VDS_VF_NO .
VDS_E_REVERT_ON_CLOSE
0x80042458L
bRevertOnClose solo debe establecerse en true si se establece la marca de volumen VDS_VF_HIDDEN o VDS_VF_READONLY .
VDS_E_REVERT_ON_CLOSE_SET
0x80042459L
Algunas marcas de volumen ya están establecidas en true. Primero debe borrar estas marcas y, a continuación, llamar a este método y establecer el parámetro bRevertOnClose en true de nuevo. El valor devuelto VDS_E_INVALID_OPERATION también puede indicar esta condición.

Comentarios

Los VDS_VF_READONLY, VDS_VF_HIDDEN y VDS_VF_NO_DEFAULT_DRIVE_LETTER marcan el ámbito de forma diferente según el tipo de disco (básico o dinámico) y el estilo de partición (MBR o GPT). El ámbito está basado en disco o en volumen, tal y como se describe en las siguientes condiciones:

  • Si el disco es básico y MBR, establecer una de estas marcas en un volumen afecta al volumen actual y a todos los volúmenes futuros con el atributo especificado creado en el disco.
  • Si el disco es básico y GPT, dinámico y MBR, o GPT dinámico y GPT, el establecimiento de una de las marcas en un volumen se aplica solo a ese volumen específico.
En la tabla siguiente se identifica el ámbito de cada marca de volumen en discos básicos mbR, discos básicos GPT y discos dinámicos MBR o GPT.
Marca Discos básicos de MBR Discos básicos de GPT Discos dinámicos MBR o GPT
VDS_VF_LBN_REMAP_ENABLED No se puede establecer. No se puede establecer. Establezca en el volumen, si es compatible con el administrador de volúmenes de terceros.
VDS_VF_HIDDEN Establezca en todo el disco. Establezca en volúmenes (solo particiones de datos). Establézcalo en volúmenes.
VDS_VF_READONLY Establezca en todo el disco. Establezca en volúmenes (solo particiones de datos). Establézcalo en volúmenes.
VDS_VF_NO_DEFAULT_DRIVE_LETTER Establezca en todo el disco. Establézcalo en particiones. Consulte VDS_VOLUME_FLAG.
VDS_VF_SHADOW_COPY Establezca en todo el disco. Establezca en volúmenes (solo particiones de datos). Establézcalo en volúmenes.
VDS_VF_INSTALLABLE No se puede establecer. No se puede establecer. Establézcalo en volúmenes.
 

Si bRevertOnClose es TRUE y el disco es un disco básico de MBR y, a continuación, se elimina el volumen, las marcas siguen estando establecidas en todo el disco y las marcas se aplicarán a los nuevos volúmenes creados en el disco. A continuación, se deben usar IVdsAdvancedDisk::Clean para borrar las marcas.

Para crear un volumen de arranque en un disco dinámico, debe establecer la marca de VDS_VF_INSTALLABLE para el volumen y, a continuación, dar formato al volumen llamando al método IVdsVolumeMF::Format .

Este método produce un error si el volumen contiene una o varias de las marcas siguientes:

  • VDS_VF_SYSTEM
  • VDS_VF_BOOT
  • VDS_VF_PAGEFILE
  • VDS_VF_HIBERNATION
  • VDS_VF_CRASHDUMP

Si se especifica VDS_VF_HIDDEN o VDS_VF_READONLY se forzará un desmontaje y remontaje del volumen, a menos que bRevertOnClose sea TRUE.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado vds.h
Library Uuid.lib

Consulte también

IVdsAdvancedDisk::Clean

IVdsVolume

IVdsVolume::ClearFlags

VDS_VOLUME_FLAG