Если вы хотите создать в Windows новую файловую систему, отличную от FAT или NTFS, вам необходимо разработать драйвер файловой системы. Разработка драйвера устройства, работающего в режиме ядра в Windows, является чрезвычайно технической задачей. Используя Dokan, вы можете очень легко создавать свои собственные файловые системы без написания драйверов устройств. Dokan похож на FUSE (файловая система Linux в пользовательском пространстве), но работает в Windows. Более того, dokany включает в себя оболочку FUSE, которая поможет вам портировать файловые системы FUSE без изменений.
Dokany — это форк Dokan 0.6.0 с исправлениями ошибок, чистой историей изменений и обновлением для сборки с использованием новейших инструментов.
Потому что исходный проект Dokan Legacy (< 0.6.0) больше не поддерживается.
Начиная с версии 0.8.0, dokany нарушил совместимость с API dokan. Дополнительные сведения см. в разделе Выбор версии.
Затем API со временем снова изменился в версиях 1.1.0 и 2.0.0.
Для получения точных результатов тест, который многократно и последовательно тестирует несколько сценариев, был запущен 5 раз на образцах memfs
версий 1.5.1.1000 и v2.0.3.1000 в режиме ожидания. Подробные результаты можно увидеть в этой таблице здесь. Поскольку в версии 2 были добавлены улучшенные потоки и опрос памяти, ожидается, что параллельные сценарии (такие как эти тесты) будут еще более улучшены.
Пример результатов:
Create New | +13.55% | List | +60.69% | GetAttributes | +48.78% | Read | +18-42% |
Open/Overwrite | +153.41% | ListExactFile | +131.91% | SetAttributes | +120.91% | Write | +10-32% |
RandomOpenClose | +173.05% | | | Delete | +90.83% | | |
Dokan содержит лицензионные программы LGPL и MIT.
Для получения подробной информации, пожалуйста, проверьте файлы лицензии.
Вы можете получить исходные файлы с https://dokan-dev.github.io.
Докан работает над
Платформа
Подписанные драйверы выпуска и отладки предоставляются в каждом выпуске для всех платформ.
Библиотека Dokan содержит DLL пользовательского режима (dokan2.dll) и драйвер файловой системы режима ядра (dokan2.sys). После установки драйвера файловой системы Dokan вы можете создавать файловые системы, которые в Windows будут рассматриваться как обычные файловые системы. Приложение, создающее файловые системы с использованием библиотеки Dokan, называется приложением файловой системы.
Запросы на файловые операции от пользовательских программ (например, CreateFile, ReadFile, WriteFile, ...) будут отправляться в подсистему ввода-вывода Windows (работает в режиме ядра), которая впоследствии перенаправляет запросы драйверу файловой системы Dokan (dokan2. сис). Используя функции, предоставляемые библиотекой пользовательского режима Dokan (dokan2.dll), приложения файловой системы могут регистрировать функции обратного вызова в драйвере файловой системы. Драйвер файловой системы будет вызывать эти процедуры обратного вызова, чтобы ответить на полученные запросы. Результаты процедур обратного вызова будут отправлены обратно в пользовательскую программу.
Например, когда проводник Windows запрашивает открытие каталога, запрос опции CreateFile with Direction будет отправлен драйверу файловой системы Dokan, и драйвер вызовет обратный вызов CreateFile, предоставляемый приложением файловой системы. Результаты этой процедуры отправляются обратно в проводник Windows в качестве ответа на запрос CreateFile. Таким образом, драйвер файловой системы Dokan действует как прокси-сервер между пользовательскими программами и приложениями файловой системы. Преимущество этого подхода состоит в том, что он позволяет программистам разрабатывать файловые системы в пользовательском режиме, что безопасно и легко отлаживается.
Чтобы узнать больше о разработке файловой системы Dokan, см. примеры и, особенно dokan_memfs.
Короче говоря, загрузите и установите Visual Studio 2019, выберите компонент Windows 10 SDK во время установки или в меню «Инструменты» и установите WDK 10.
Подробности смотрите на странице сборки.
Последнюю официальную и подписанную сборку можно скачать по адресу:
choco install dokany2
Для ручной установки смотрите страницу установки.
Вы хотите, чтобы Докан поправился? Способствовать!
Изучите код и предложите свои изменения в репозитории GitHub.
Обнаруживайте дефекты и сообщайте о них в систему отслеживания проблем GitHub.
Задавайте вопросы и отвечайте на них в обсуждениях Github или в дискуссионной группе Google.