2.2.1.2.23 VDS_VOLUME_FLAG

The VDS_VOLUME_FLAG enumeration defines the set of valid flags for a volume object.

 typedef enum _VDS_VOLUME_FLAG
 {
   VDS_VF_SYSTEM_VOLUME = 0x00000001,
   VDS_VF_BOOT_VOLUME = 0x00000002,
   VDS_VF_ACTIVE = 0x00000004,
   VDS_VF_READONLY = 0x00000008,
   VDS_VF_HIDDEN = 0x00000010,
   VDS_VF_CAN_EXTEND = 0x00000020,
   VDS_VF_CAN_SHRINK = 0x00000040,
   VDS_VF_PAGEFILE = 0x00000080,
   VDS_VF_HIBERNATION = 0x00000100,
   VDS_VF_CRASHDUMP = 0x00000200,
   VDS_VF_INSTALLABLE = 0x00000400,
   VDS_VF_LBN_REMAP_ENABLED = 0x00000800,
   VDS_VF_FORMATTING = 0x00001000,
   VDS_VF_NOT_FORMATTABLE = 0x00002000,
   VDS_VF_NTFS_NOT_SUPPORTED = 0x00004000,
   VDS_VF_FAT32_NOT_SUPPORTED = 0x00008000,
   VDS_VF_FAT_NOT_SUPPORTED = 0x00010000,
   VDS_VF_NO_DEFAULT_DRIVE_LETTER = 0x00020000,
   VDS_VF_PERMANENTLY_DISMOUNTED = 0x00040000,
   VDS_VF_PERMANENT_DISMOUNT_SUPPORTED = 0x00080000,
   VDS_VF_SHADOW_COPY = 0x00100000,
   VDS_VF_FVE_ENABLED = 0x00200000,
   VDS_VF_DIRTY = 0x00400000,
   VDS_VF_REFS_NOT_SUPPORTED = 0x00800000
 } VDS_VOLUME_FLAG;

VDS_VF_SYSTEM_VOLUME:  If set, the volume is a system volume. It contains the boot loader that is used to invoke the operating system on the boot volume.

VDS_VF_BOOT_VOLUME:  If set, the volume is a boot volume that contains the operating system.

VDS_VF_ACTIVE:  If set, the volume is an active volume. It can become the system volume at system startup if the BIOS is configured to select that disk for startup.

VDS_VF_READONLY:  If set, the volume can be read from but not written to.

VDS_VF_HIDDEN:  If set, the volume does not automatically get assigned mount points or drive letters that can be used to access the volume.

VDS_VF_CAN_EXTEND:  If set, the volume size can be extended.

VDS_VF_CAN_SHRINK:  If set, the volume size can be reduced.

VDS_VF_PAGEFILE:  If this flag is set, the volume contains a page file.

VDS_VF_HIBERNATION:  If set, the volume holds the files that are used when the system hibernates.

VDS_VF_CRASHDUMP:  If set, the volume acts as a crash-dump device.

VDS_VF_INSTALLABLE:  If set, callers can use the volume to install an operating system.

VDS_VF_LBN_REMAP_ENABLED:  If set, VDS can dynamically change the position of the volume on the disk. This flag is not valid for basic and dynamic volumes and is only supported by some third-party volume managers.

VDS_VF_FORMATTING:  If set, the volume is being formatted.

VDS_VF_NOT_FORMATTABLE:  If set, the volume cannot be formatted.

VDS_VF_NTFS_NOT_SUPPORTED:  If set, the volume does not support the NTFS file system but can support other file systems.

VDS_VF_FAT32_NOT_SUPPORTED:  If set, the volume does not support FAT32.

VDS_VF_FAT_NOT_SUPPORTED:  If set, the volume does not support FAT.

VDS_VF_NO_DEFAULT_DRIVE_LETTER:  If set, the operating system does not automatically assign a drive letter when the volume is created or a disk containing existing volumes is connected to the operating system. When cleared, the operating system assigns a drive letter to the volume. Callers can set and clear this flag. For basic GPT volumes and dynamic disk volumes, assigning or removing a drive letter toggles this flag.<14>

The flag is set by default for dynamic disk and basic GPT disk volumes.

VDS_VF_PERMANENTLY_DISMOUNTED:  If set, the volume is unavailable and requires a mount-point assignment. VDS sets this flag after the caller invokes the IVdsVolumeMF::Dismount method, setting the bForce and bPermanent parameters to TRUE.

VDS_VF_PERMANENT_DISMOUNT_SUPPORTED:  If set, the volume supports bPermanent for the IVdsVolumeMF::Dismount method. This flag cannot be set or cleared by the client. This flag is set by the server if it applies.

VDS_VF_SHADOW_COPY:  If set, the volume is a shadow copy of another volume. This flag is set when the snapshot is taken, and it is cleared when the snapshot is broken from the original volume. The VDS_VF_SHADOW_COPY flag is an indication for software-like file system filter drivers (for example, antivirus) to avoid attaching to the volume. Applications can use the attribute to differentiate snapshots from production volumes. Applications that create a Fast Recovery, in which a shadow copy LUN is made into a non-snapshot by clearing the read-only and hidden bit, will need to clear this bit as well.

VDS_VF_FVE_ENABLED:  The volume is encrypted with full-volume encryption.<15>

VDS_VF_DIRTY<16>:  The volume's dirty bit is set.

VDS_VF_REFS_NOT_SUPPORTED<17>:  The volume does not support ReFS.

VDS_VF_HIDDEN, VDF_VF_READ_ONLY, VDS_VF_SHADOW_COPY, and VDS_VF_NO_DEFAULT_DRIVE_LETTER are set as follows:

  • Dynamic disk volumes - The flag is per volume. VDS_VF_NO_DEFAULT_DRIVE_LETTER is set at volume creation. <18>The flag toggles when drive letters are assigned or removed, and can also be set or cleared using any of the Set/ClearFlags methods.

  • MBR basic disk volumes - The flag is applied to all volumes created on the disk after the flag is set. It is set per disk for basic MBR disks, not per volume. The flag is only set or cleared if an explicit call is made to the IVdsVolume::SetFlags (section 3.4.5.2.32.10) and IVdsVolume::ClearFlag (section 3.4.5.2.32.11) methods, respectively. For example, the VDS_VF_NO_DEFAULT_DRIVE_LETTER flag is not toggled as drive letters are assigned to or removed from specific volumes.

  • GPT basic disk volumes - The flag is per volume, data partitions only. VDS_VF_NO_DEFAULT_DRIVE_LETTER is set at volume creation and toggled when drive letters are assigned or removed (by VDS).