Я хотел бы написать небольшую библиотеку утилиты/класса на C#, которая может перечислять первичные разделы на диске, связанные с томом C в Windows 7. Я хотел бы изменить активный флаг для любых первичных разделов на этом диске. Я хотел бы «уничтожить» эту библиотеку из управляемого кода (C#). Насколько я понимаю, мне нужно будет использовать службу виртуального диска, описанную в http://msdn.microsoft.com/en-us/library/bb986750(v=VS.85).aspx.Программирование API виртуальной дисковой системы в C# с использованием COM Interop
Для этого API для Windows 2008 существует нечто вроде «первичной сборки взаимодействия»: 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 не экспортирует библиотеку типов. Это правда? Я не могу найти его.
Это оставляет работу COM «вручную» либо на C++ напрямую, в соответствии с приведенными выше примерами. Эти примеры работают, но практически непостижимы. Аналогичным образом я мог бы создать клиентскую сборку вручную из midl, используя методы, описанные в http://msdn.microsoft.com/en-us/library/aa645736(VS.71).aspx. Но мне не хватает COM/COM Interop/VDS, чтобы сделать это разумным образом.
Мне кажется, что клиент VDS dcom api является виртуальным непригодным для использования, поэтому каждый заканчивает скрипты diskpart.exe. Конечно, я ошибаюсь.
Как насчет краудсорсинга ответа? Может ли кто-нибудь сказать мне, где я могу узнать больше? Я опубликовал несколько форумов Windows, но там тоже есть тишина. Кто-то знает, как это сделать. Благодарю. – mcarifio