Реализация виртуального файла путем переопределения Win32 File API - PullRequest
0 голосов
/ 09 апреля 2010

Есть ли способ переопределить Win32 File API, такой как CreateFile ()? Я хочу, чтобы мое приложение видело виртуальный файл исключительно для моего приложения, однако на самом деле виртуальный файл не существует.

Ответы [ 2 ]

1 голос
/ 26 октября 2014

Существует два подхода - с драйвером режима ядра (задокументированный) и без такого драйвера (хакерский способ).

С драйвером режима ядра у вас есть два пути - (1) создать драйвер виртуальной файловой системы (или взять существующий) и (2) создать драйвер фильтра файловой системы (или взять существующий). Разработка драйвера = год или около того работы, чтобы сделать правильно и полностью. Разработка драйверов полностью документирована в MSDN.

Без драйвера режима ядра вам нужно использовать перехват API. Такие библиотеки (как Detours, MadCodeHook и Boxedapp SDK) делают это (и позволяют делать то же самое).

Перехват темы API довольно велик, чтобы полностью описать ее здесь, но есть хорошая статья CodeProject на эту тему.

0 голосов
/ 09 апреля 2010

Общесистемную? Плохая идея. Если это просто ваше приложение, не используйте стандартные API и реализуйте его самостоятельно. Но если данные должны сохраняться между сеансами, вам придется где-то хранить данные (файл, реестр и т. Д.).

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