What's New in VDS in Windows Server 2008 R2 and Windows 7

[Beginning with Windows 8 and Windows Server 2012, the Virtual Disk Service COM interface is superseded by the Windows Storage Management API.]

Windows Server 2008 R2 and Windows 7 introduce the following changes to the Virtual Disk Service (VDS):

New VDS Interfaces

IVdsDisk3
IVdsDiskPartitionMF2
IVdsDrive2
IVdsHwProviderStoragePools
IVdsLun2
IVdsLunNumber
IVdsOpenVDisk
IVdsStoragePool
IVdsSubSystem2
IVdsSubSystemInterconnect
IVdsVDisk
IVdsVdProvider
IVdsVolume2
IVdsVolumeMF3

New VDS Enumerations

VDS_DISK_OFFLINE_REASON
VDS_FORMAT_OPTION_FLAGS
VDS_INTERCONNECT_FLAG
VDS_RAID_TYPE
VDS_STORAGE_POOL_STATUS
VDS_STORAGE_POOL_TYPE
VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG
VDS_VDISK_STATE

New VDS Structures

VDS_CREATE_VDISK_PARAMETERS
VDS_DISK_FREE_EXTENT
VDS_DISK_PROP2
VDS_DRIVE_PROP2
VDS_HINTS2
VDS_POOL_ATTRIBUTES
VDS_POOL_CUSTOM_ATTRIBUTES
VDS_STORAGE_POOL_DRIVE_EXTENT
VDS_STORAGE_POOL_PROP
VDS_SUB_SYSTEM_PROP2
VDS_VDISK_PROPERTIES
VDS_VOLUME_PROP2

Modifications to Existing VDS Enumerations

VDS_ASYNC_OUTPUT_TYPE enumeration added values:

VDS_ASYNCOUT_CREATE_VDISK
VDS_ASYNCOUT_ATTACH_VDISK
VDS_ASYNCOUT_COMPACT_VDISK
VDS_ASYNCOUT_MERGE_VDISK
VDS_ASYNCOUT_EXPAND_VDISK

VDS_CONTROLLER_STATUS enumeration added value:

VDS_CS_REMOVED

VDS_DISK_FLAG enumeration added value:

VDS_DF_BOOT_FROM_DISK
VDS_DF_CURRENT_READ_ONLY

VDS_DRIVE_FLAG enumeration added values:

VDS_DRF_ASSIGNED
VDS_DRF_UNASSIGNED
VDS_DRF_HOTSPARE_IN_USE
VDS_DRF_HOTSPARE_STANDBY

VDS_DRIVE_STATUS enumeration added value:

VDS_DRS_REMOVED

VDS_FILE_SYSTEM_TYPE enumeration added value:

VDS_FST_EXFAT

VDS_HEALTH enumeration added values:

VDS_H_REPLACED
VDS_H_PENDING_FAILURE
VDS_H_DEGRADED

VDS_HWPROVIDER_TYPE enumeration added values:

VDS_HWT_SAS
VDS_HWT_HYBRID

VDS_LUN_FLAG enumeration added values:

VDS_LF_READ_CACHE_ENABLED
VDS_LF_WRITE_CACHE_ENABLED
VDS_LF_MEDIA_SCAN_ENABLED
VDS_LF_CONSISTENCY_CHECK_ENABLED
VDS_LF_SNAPSHOT

VDS_LUN_PLEX_TYPE enumeration added values:

VDS_LPT_RAID2
VDS_LPT_RAID3
VDS_LPT_RAID4
VDS_LPT_RAID5
VDS_LPT_RAID6
VDS_LPT_RAID03
VDS_LPT_RAID05
VDS_LPT_RAID10
VDS_LPT_RAID15
VDS_LPT_RAID30
VDS_LPT_RAID50
VDS_LPT_RAID53
VDS_LPT_RAID60

VDS_LUN_TYPE enumeration added values:

VDS_LT_RAID2
VDS_LT_RAID3
VDS_LT_RAID4
VDS_LT_RAID5
VDS_LT_RAID6
VDS_LT_RAID01
VDS_LT_RAID03
VDS_LT_RAID05
VDS_LT_RAID10
VDS_LT_RAID15
VDS_LT_RAID30
VDS_LT_RAID50
VDS_LT_RAID51
VDS_LT_RAID53
VDS_LT_RAID60
VDS_LT_RAID61

VDS_OBJECT_TYPE enumeration added values:

VDS_OT_STORAGE_POOL
VDS_OT_VDISK
VDS_OT_OPEN_VDISK

VDS_PORT_STATUS enumeration added value:

VDS_DRS_REMOVED

VDS_PROVIDER_FLAG enumeration added values:

VDS_PF_SUPPORT_MIRROR
VDS_PF_SUPPORT_RAID5

VDS_PROVIDER_TYPE enumeration added values:

VDS_PT_VIRTUALDISK
VDS_PT_MAX

VDS_SERVICE_FLAG enumeration added values:

VDS_SVF_SUPPORT_MIRROR
VDS_SVF_SUPPORT_RAID5

VDS_SUB_SYSTEM_FLAG enumeration added values:

VDS_SF_SUPPORTS_LUN_NUMBER
VDS_SF_SUPPORTS_MIRRORED_CACHE
VDS_SF_READ_CACHING_CAPABLE
VDS_SF_WRITE_CACHING_CAPABLE
VDS_SF_MEDIA_SCAN_CAPABLE
VDS_SF_CONSISTENCY_CHECK_CAPABLE

VDS_TRANSITION_STATE enumeration added value:

VDS_TS_RESTRIPING

VDS_VERSION_SUPPORT_FLAG enumeration added values:

VDS_VSF_2_0
VDS_VSF_2_1
VDS_VSF_3_0

VDS_VOLUME_STATUS enumeration added value:

VDS_VS_OFFLINE

Modifications to Existing VDS Structures

VDS_CONTROLLER_NOTIFICATION structure added ulEvent values:

VDS_NF_CONTROLLER_MODIFY
VDS_NF_CONTROLLER_REMOVED

VDS_DRIVE_NOTIFICATION structure added ulEvent value:

VDS_NF_DRIVE_REMOVED

VDS_PORT_NOTIFICATION structure added ulEvent values:

VDS_NF_PORT_MODIFY
VDS_NF_PORT_REMOVED