Мапить файл как виртуальный диск в Windows
От: JacobR  
Дата: 27.11.18 05:22
Оценка:
Добрый день коллеги

Есть у нас некий “фаловый стораж” по сути это один большой файл в котором хранятся файлы, у него есть интерфейс (С++) который позволяет добавить/удалить/прочитать файлы. Сейчас аналитики захотели, чтобы этот файл был виден сторонним программам в Windows (начиная с 2008r2) как диск, что-то типа TrueCrypt\ VeraCrypt, но только у нас не криптоконтейнер, а другие задачи. До этого по серьезному драйверу не приходилось писать для Windows, и начали пока с изучения документации, самлов, изучения исходников и отладки VeraCrypt.
И вопросы следующие, может где, то есть хорошая документация или даже пример примерно для нашей задачи второй и вопрос насколько возможно, в драйвере оставить минимальные функции обеспечения вызовов WinAPi файловой системы, а вся работа осталось бы “клиентском коде”. То есть сам сторадж достаточно сложный контейнер в нем B-деревья, хеши, куча работы с геометрией, написан на С++, плюс различные сторонние библиотеки и хотелось бы что драйвер только “проксировал” вызовы к клиентской dll, с максимально возможной производительность.
Re: Мапить файл как виртуальный диск в Windows
От: mike_rs Россия  
Дата: 27.11.18 08:25
Оценка: +1
Здравствуйте, JacobR, Вы писали:

JR>Добрый день коллеги


JR>Есть у нас некий “фаловый стораж” по сути это один большой файл в котором хранятся файлы, у него есть интерфейс (С++) который позволяет добавить/удалить/прочитать файлы. Сейчас аналитики захотели, чтобы этот файл был виден сторонним программам в Windows (начиная с 2008r2) как диск, что-то типа TrueCrypt\ VeraCrypt, но только у нас не криптоконтейнер, а другие задачи. До этого по серьезному драйверу не приходилось писать для Windows, и начали пока с изучения документации, самлов, изучения исходников и отладки VeraCrypt.

JR>И вопросы следующие, может где, то есть хорошая документация или даже пример примерно для нашей задачи второй и вопрос насколько возможно, в драйвере оставить минимальные функции обеспечения вызовов WinAPi файловой системы, а вся работа осталось бы “клиентском коде”. То есть сам сторадж достаточно сложный контейнер в нем B-деревья, хеши, куча работы с геометрией, написан на С++, плюс различные сторонние библиотеки и хотелось бы что драйвер только “проксировал” вызовы к клиентской dll, с максимально возможной производительность.

ну возьмите тот-же truecrypt только адаптируйте под свой контейнер без крипты.
либо, если именно user-mode часть хочется сделать, то dokan
Re: Мапить файл как виртуальный диск в Windows
От: EreTIk EreTIk's Box
Дата: 27.11.18 10:33
Оценка:
Здравствуйте, JacobR, Вы писали:

JR>... начали пока с изучения документации, самлов, изучения исходников и отладки VeraCrypt.


Стоит подумать о целесообразности эмуляции именно тома: такое решение было бы актуально, если бы на томе была бы нативная для ОС файловая система. VeraCrypt, когда реализует крипто-контейнер из файла, эмулирует устройств тома, на котором Windows уже находит известную ФС (NTFS/FAT/...). Мне кажется разумнее браться за псевдо-Network-Redirector, предложенный выше dokan именно им и является. Еще пример — Shared Folders у VirtualBox.
Re[2]: Мапить файл как виртуальный диск в Windows
От: x-code  
Дата: 21.05.19 10:27
Оценка:
Здравствуйте, EreTIk, Вы писали:

ETI>Стоит подумать о целесообразности эмуляции именно тома: такое решение было бы актуально, если бы на томе была бы нативная для ОС файловая система. VeraCrypt, когда реализует крипто-контейнер из файла, эмулирует устройств тома, на котором Windows уже находит известную ФС (NTFS/FAT/...). Мне кажется разумнее браться за псевдо-Network-Redirector, предложенный выше dokan именно им и является. Еще пример — Shared Folders у VirtualBox.


Кстати а наоборот бывает?
Есть настоящий контейнер veracrypt, и его хочется открыть приложением и общаться через какое-то api подобное файловым функциям. Не монтируя в ОС, ну или монтируя так, чтобы никакие другие приложения этот том не видели.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.