Есть у нас некий “фаловый стораж” по сути это один большой файл в котором хранятся файлы, у него есть интерфейс (С++) который позволяет добавить/удалить/прочитать файлы. Сейчас аналитики захотели, чтобы этот файл был виден сторонним программам в Windows (начиная с 2008r2) как диск, что-то типа TrueCrypt\ VeraCrypt, но только у нас не криптоконтейнер, а другие задачи. До этого по серьезному драйверу не приходилось писать для Windows, и начали пока с изучения документации, самлов, изучения исходников и отладки VeraCrypt.
И вопросы следующие, может где, то есть хорошая документация или даже пример примерно для нашей задачи второй и вопрос насколько возможно, в драйвере оставить минимальные функции обеспечения вызовов WinAPi файловой системы, а вся работа осталось бы “клиентском коде”. То есть сам сторадж достаточно сложный контейнер в нем B-деревья, хеши, куча работы с геометрией, написан на С++, плюс различные сторонние библиотеки и хотелось бы что драйвер только “проксировал” вызовы к клиентской dll, с максимально возможной производительность.
Здравствуйте, JacobR, Вы писали:
JR>Добрый день коллеги
JR>Есть у нас некий “фаловый стораж” по сути это один большой файл в котором хранятся файлы, у него есть интерфейс (С++) который позволяет добавить/удалить/прочитать файлы. Сейчас аналитики захотели, чтобы этот файл был виден сторонним программам в Windows (начиная с 2008r2) как диск, что-то типа TrueCrypt\ VeraCrypt, но только у нас не криптоконтейнер, а другие задачи. До этого по серьезному драйверу не приходилось писать для Windows, и начали пока с изучения документации, самлов, изучения исходников и отладки VeraCrypt. JR>И вопросы следующие, может где, то есть хорошая документация или даже пример примерно для нашей задачи второй и вопрос насколько возможно, в драйвере оставить минимальные функции обеспечения вызовов WinAPi файловой системы, а вся работа осталось бы “клиентском коде”. То есть сам сторадж достаточно сложный контейнер в нем B-деревья, хеши, куча работы с геометрией, написан на С++, плюс различные сторонние библиотеки и хотелось бы что драйвер только “проксировал” вызовы к клиентской dll, с максимально возможной производительность.
ну возьмите тот-же truecrypt только адаптируйте под свой контейнер без крипты.
либо, если именно user-mode часть хочется сделать, то dokan
Здравствуйте, JacobR, Вы писали:
JR>... начали пока с изучения документации, самлов, изучения исходников и отладки VeraCrypt.
Стоит подумать о целесообразности эмуляции именно тома: такое решение было бы актуально, если бы на томе была бы нативная для ОС файловая система. VeraCrypt, когда реализует крипто-контейнер из файла, эмулирует устройств тома, на котором Windows уже находит известную ФС (NTFS/FAT/...). Мне кажется разумнее браться за псевдо-Network-Redirector, предложенный выше dokan именно им и является. Еще пример — Shared Folders у VirtualBox.
Здравствуйте, EreTIk, Вы писали:
ETI>Стоит подумать о целесообразности эмуляции именно тома: такое решение было бы актуально, если бы на томе была бы нативная для ОС файловая система. VeraCrypt, когда реализует крипто-контейнер из файла, эмулирует устройств тома, на котором Windows уже находит известную ФС (NTFS/FAT/...). Мне кажется разумнее браться за псевдо-Network-Redirector, предложенный выше dokan именно им и является. Еще пример — Shared Folders у VirtualBox.
Кстати а наоборот бывает?
Есть настоящий контейнер veracrypt, и его хочется открыть приложением и общаться через какое-то api подобное файловым функциям. Не монтируя в ОС, ну или монтируя так, чтобы никакие другие приложения этот том не видели.