使用COM Interop在C#中编写虚拟磁盘服务API

时间:2010-05-04 17:50:54

标签: c# com interop dcom vds

我想在C#中编写一个小的实用程序/类库,它可以枚举与Windows 7上的卷C关联的磁盘上的主分区。我想修改该磁盘上任何一个主分区的活动标志。我想从托管代码(C#)“使用”这个库。据我了解,我需要使用http://msdn.microsoft.com/en-us/library/bb986750(v=VS.85).aspx中描述的虚拟磁盘服务。

对于Windows 2008的此API,似乎有类似“主要互操作程序集”的内容:Windows.Storage.Vds.dll(请参阅http://blogs.msdn.com/taylorb/archive/2008/09/19/using-the-virtual-disk-service-vds-from-powershell-to-mount-and-use-vhd-s.aspx)。我无法在Windows 7中找到它。它存在吗?如果是这样,我该如何获得它?我找不到它,所以我猜它不公开。

下一步是使用tlbimp 生成此代码,但VDS不会导出类型库。这是真的?我找不到了。

这样就可以直接在C ++中“手动”完成COM工作,就像上面的例子一样。这些例子有效,但几乎是不可理解的。同样,我可以使用http://msdn.microsoft.com/en-us/library/aa645736(VS.71).aspx中描述的技术从midl手动创建客户端程序集。但我没有足够的COM / COM Interop / VDS以合理的方式做到这一点。

让我觉得VDS dcom客户端api虚拟无法使用,因此每个人都会编写diskpart.exe脚本。我当然错了。

1 个答案:

答案 0 :(得分:1)

请参阅此SO entry以获取一些信息。