I am currently writing a VB.net application that is supposed to query a server (i'm using WMI) and return the disk information about the server. What I really need to determine is if the disk type is configured as a Basic disk or dynamic volume. Apparently, Microsoft does not provide this information through WMI or in the .net Framework according to support at Microsoft. This functionality is actually built into Windows or the .net framework (can't quite remember) but its not publicily available to use. I don't know why.

So, their proposed solution for me was to create a C/C++ program (they gave me a bunch of source code that will access the VDS (Virtual Disk Service) and retrieve this information. This code they gave me uses the WDK and the VDS SDK and will output the disk information.

What they wanted me to do is write a function using their code that will retrieve the flag that will display if a disk is configured as basic or dynamic. Then, once I can do that on a local machine, they were trying to go remote with it.

Now, I only know VB.net to a certain extent, and I do not know any advanced C/C++. I was curious if anyone on here has had experience writing device drivers, working with the WDK or VDS SDK, or working with disks in C/C++. Would anyone here be able to help me figure out how to write this code?

Thanks!