Adding Storage Management abilities to your Windows application using VDS (Virtual Disk Service)
If you’re writing a Windows application that needs to do storage management, you should look into the VDS (Virtual Disk Services) API.
VDS storage management includes abilities like enumerating all HBAs on a system, creating a LUN, setting a disk online, formatting a volume or adding a drive letter to it.
For those not familiar with VDS, start by looking at an overview I posted at https://blogs.technet.com/josebda/archive/2007/10/25/the-basics-of-the-virtual-disk-services-vds.aspx.
To understand the VDS architecture from a developer’s perspective and get an overview of the VDS Interfaces, check this VDS reference from TechNet at https://technet.microsoft.com/en-us/library/cc739923.aspx.
Once you need to start looking at the details on each interface, the best reference is the "Virtual Disk Service Programming Guide" documentation available on MSDN.
This includes a complete reference of all constants, data types, enumerations, interfaces, structures and error codes used by VDS.
The main page is https://msdn2.microsoft.com/en-us/library/aa383063.aspx.
There you will also find some code samples:
- Loading VDS - https://msdn.microsoft.com/en-us/library/aa383037(VS.85).aspx
- Working with Enumeration Objects - https://msdn.microsoft.com/en-us/library/aa383988(VS.85).aspx
- Managing Asynchronous Operations - https://msdn.microsoft.com/en-us/library/aa383048(VS.85).aspx
There are also a few pages with instructions on how to use the VDS model, although they do not really include code samples:
- Reenumerating and Refreshing providers and subsystems - https://msdn.microsoft.com/en-us/library/aa383069(VS.85).aspx
- Adding Foreign Disks to a Pack - https://msdn.microsoft.com/en-us/library/aa381618(VS.85).aspx
- Adding a Drive Letter to a LUN - https://msdn.microsoft.com/en-us/library/aa381614(VS.85).aspx
Note that these are Win32 APIs. If you writing managed code, you will need to create a wrapper using p/Invoke.
There’s a good description on how to do that at https://msdn.microsoft.com/en-us/library/aa719104.aspx.
Keep in mind that you can use the VDS API to query and configure both local disks or RAID subsystems like an external disk array.
However, for VDS to interact with those RAID subsystems, you will need additional software provided by the hardware vendor called a VDS Hardware Provider.
All major storage vendors will typically offer a provider and the latest Windows Logo Kit (WLK) includes a VDS Hardware Provider test.
To get a list of Microsoft Storage Partners currently using VDS technology, follow these steps:
- Visit https://www.microsoftstoragepartners.com/FindaPartner/Default.aspx
- Select “Virtual Disk Services (VDS)” from the “Windows Supported Storage Technologies” drop down
- Click on the “Search Partners” button
Comments
- Anonymous
January 01, 2003
PingBack from http://www.alvinashcraft.com/2008/10/07/dew-drop-october-7-2008/