Как сделать VHD-файл?

313
Luciano

Я сделал небольшую программу, которая создает виртуальный диск. Он вызывает оболочку и запускает diskpart, которая, в свою очередь, выполняет мини-скрипт, такой как: «create vdisk file = MyDisk.vhd и т. Д.». Diskpart работает в отдельном потоке. Конечно.

Можно ли создать виртуальный диск непосредственно из кода, не проходя через оболочку? В более общем смысле, есть библиотека .NET для обработки VHD-файлов (или VHDX)? Я использую языки VB и C #. Или я могу использовать Windows API? Если да, то какой?

-1
Если вы делаете это, чтобы просто заполнить конкретный вариант использования, посмотрите, что уже существует. Например, sysinternals disk2vhd может быть тем, что вы ищете. Он преобразует диск вашего компьютера в VHD, чтобы вы могли виртуализировать диск и использовать его в виртуальной машине. LPChip 5 лет назад 0
для Давида: я не понимаю. Моя проблема конкретная. Что не так точно? Если я пишу только: «Можно ли создать виртуальный диск непосредственно из кода, не проходя через оболочку?» это может быть хорошо? Luciano 5 лет назад 0
для LPChip: нет. Я не ищу этого. disk2vhd клонирует физические диски в виртуальные диски. Я хочу создать виртуальный диск из своего кода, поэтому я также изучаю что-то новое, потому что я не знаю, как это сделать. Если вы не обратитесь к источнику disk2vhd (но есть ли источники?), Однако он будет написан на C ++ и, следовательно, это не для меня! Luciano 5 лет назад 0
Это может быть то, что вы ищете - https://github.com/discutils/discutils, другой вариант, который следует рассмотреть, это powershell, поскольку вы можете выполнить это с помощью c # https://docs.microsoft.com/en-us/powershell/ module / hyper-v / new-vhd? view = win10-ps, https://blogs.msdn.microsoft.com/kebab/2014/04/28/executing-powershell-scripts-from-c/ CraftyB 5 лет назад 1
Здравствуйте, первая ссылка не очень хорошая, потому что мне нужен двоичный исполняемый файл, но вторая очень интересная, и, возможно, это именно то, что я ищу. Я также нашел библиотеку COM +, которая могла бы сделать для меня: «IVMVirtualServer», можно сослаться на нее в стиле COM, но я не понял, где она физически расположена (Google в этом случае не помогает!). Спасибо. Luciano 5 лет назад 0

0 ответов на вопрос

Похожие вопросы