Есть несколько подходов, которые зависят от специфики вашей задачи.
Если вам нужно работать с файловой системой (то есть с помощью функций и классов API файловой системы), и вы хотите быстро, то (как я предложил в ответ на ваш предыдущий вопрос) вам нужно создать RAMDiskВодитель.Windows Driver Kit включает в себя пример драйвера, который (совпадение?) Имеет название «RamDisk».Однако разработка драйверов сложна, и если с образцом что-то не так или вам нужно его расширить, вам нужно углубиться в разработку в режиме ядра (или нанять кого-нибудь для выполнения этой работы).Почему режим ядра?Причина, как вы могли видеть с Dokan, переключение обратно в режим пользователя для хранения данных вызывает значительное замедление.
Если все, что вам нужно, - это удобное управление кучей файлов в памяти с помощью класса Stream (с возможностью записи всего этого на диск), то вы можете использовать одну из виртуальных файловых систем.Наша SolFS (Application Edition) является одним из таких продуктов, которые вы можете использовать (я также помню FileBase File System, но, похоже, они не предоставляют ознакомительную версию).SolFS, кажется, подходит для вашей задачи, поэтому, если вы тоже так думаете, вы можете связаться со мной в частном порядке (см. Мой профиль) для помощи.
Чтобы ответить на ваши вопросы:
Нет, отображаемые в память файлы (MMF) - это буквально файлы на диске (включая виртуальный диск, если он у вас есть), доступ к которому можно получить не через API файловой системы, а напрямую, используя операции в памяти.MMF, как правило, быстрее для большинства файловых операций, поэтому они часто упоминаются.
Наши продукты Callback File System или CallbackDisk (см. Строку virtual storage ) являются альтернативой, однако, как я упоминал в первом абзаце, они не решатВаша проблема из-за переключения контекста в пользовательском режиме.
Обновление: Я не вижу препятствий для того, чтобы драйвер имел копию в памяти и выполнял операции записи на диск асинхронно, когда это необходимо.Но для этого потребуется изменить образец драйвера RAMDisk (и это требует довольно много программирования в режиме ядра).
С SolFS или другой виртуальной файловой системой вы также можете иметь копию хранилища на диске.В случае виртуальной файловой системы может показаться, что работа с файлом-контейнером на диске даст вам удовлетворительные результаты (поскольку виртуальная файловая система обычно имеет кэш-память), и вам вообще не нужно будет хранить копию в памяти.