Виртуальный диск сопоставлен с программой - PullRequest
3 голосов
/ 19 октября 2011

Можно ли создать программу (желательно .NET) для создания буквы виртуального диска, но когда она читается, записывается или просматривается, независимая программа имеет дело с тем, что возвращается?

ХотяВы могли бы сделать это, сопоставив диск с сервером TCP, webDAV или чем-то в этом роде, мне интересно, можно ли это сделать с внутренними ссылками.

Это будет использоваться для защищенного хранилища.Программа выполняет потоковое шифрование и дешифрование всех файлов на диске (так как они читаются всеми видами программ), если в программу введен пароль.

Ответы [ 3 ]

3 голосов
/ 19 октября 2011

То, о чем вы говорите, - это драйвер устройства хранения, с помощью которого такие программы, как Daemon Tools и TrueCrypt выполняют такие «виртуальные» диски., хоть.Microsoft поставляет Windows Driver Mode Mode Framework, которая разработана для упрощения разработки некоторых распространенных типов драйверов Windows.Из того, что я могу сказать, вы должны быть в состоянии разработать драйвер виртуального хранилища, используя структуру драйвера пользовательского режима.Пока вы не взаимодействуете напрямую с оборудованием (как это делает драйвер устройства в режиме ядра), все будет в порядке.Однако вы не сможете сделать это в C #.Вам, вероятно, придется использовать C, хотя вы можете обойтись без C ++.

1 голос
/ 19 октября 2011

Существует программа с открытым исходным кодом, WinCDEmu , которая может монтировать образ ISO на виртуальный диск.Я полагаю, вы сможете изучить источники, чтобы выяснить, как предоставить виртуальный диск, который делает то, что вы хотите.Проект написан на C ++.

Он основан на BazisLib , который является основой для упрощения разработки драйвера Windows.

1 голос
/ 19 октября 2011

PowerShell уже поддерживает нечто подобное со своей моделью провайдера.Хранилище сертификатов, Active Directory, IIS-конфигурация, SharePoint, ... все они выглядят как файловая система, используя те же команды для запроса и обновления.

Это сердце PowerShell.$foo - это значение переменной foo, ${c:\foo.txt} - это содержимое файла C:\foo.txt, но используется как переменная.Также dir HKLM:\Software перечисляет дочерние ключи этого ключа реестра.

Вы можете написать своих собственных провайдеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...