Программирование API службы виртуальных дисков в C # с помощью COM Interop - PullRequest
1 голос
/ 04 мая 2010

Я хотел бы написать небольшую утилиту / библиотеку классов на C #, которая может перечислять основные разделы на диске, связанном с томом C в Windows 7. Я хотел бы изменить флаг active для любого из основных разделов на этом диске , Я хотел бы «потреблять» эту библиотеку из управляемого кода (C #). Насколько я понимаю, мне нужно будет использовать службу виртуального диска, описанную в http://msdn.microsoft.com/en-us/library/bb986750(v=VS.85).aspx.

Кажется, что-то вроде "основной сборки взаимодействия" для этого 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 ++, в соответствии с примерами выше. Эти примеры работают, но практически непостижимы. Аналогично, я мог бы создать клиентскую сборку вручную из мидл, используя методы, описанные в http://msdn.microsoft.com/en-us/library/aa645736(VS.71).aspx. Но мне не хватает COM / COM Interop / VDS, чтобы сделать это разумным способом.

Мне кажется, что API клиента VDS dcom виртуально непригоден для использования, и поэтому все заканчивают сценарием diskpart.exe. Конечно, я ошибаюсь по этому поводу.

1 Ответ

1 голос
/ 25 мая 2010

См. SO запись для получения дополнительной информации, чтобы начать с.

...