Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кэш для драйвера, невидимая папка 
V
    Опции темы
Goganchic
Дата 14.10.2008, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: нет
Всего: 5



Всем привет!
Сейчас занимаюсь разработкой фильтрующего драйвера, для него необходимо сделать кэш на диске (кэшем будет заниматься не сам драйвер, а программа пользовательского режима). Необходимо сделать так, чтобы этот кэш был недоступен для всех userspace процессов (кроме соответственно части моего проекта, которая работает в userspace), а также невидим для них.
Первую часть реализовать достаточно легко: так как мы перехватываем все IRP запросы на логический диск, то мы можем просто ответить отказом на некоторые из них (которые идут к кэшу), а вот как сделать папку с кэшем невидимой? Как это реализовать через фильтрующий драйвер?
Может быть кто-то сталкивался с подобным?

Заранее спасибо за ответы
PM Jabber   Вверх
ama_kid
Дата 15.10.2008, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 5
Всего: 95



Цитата(Goganchic @  14.10.2008,  18:00 Найти цитируемый пост)
как сделать папку с кэшем невидимой? Как это реализовать через фильтрующий драйвер?
В своей статье я показывал пример именно этого (см. п.4.2). Несмотря на то, что примеры там рассматриваются на Delphi - в приаттаченном архиве есть и С++-вариант перехвата ZwQueryDirectoryFile, применяемого для обеспечения невидимости файла\папки... Глянь, может это натолкнет тебя на решение проблемы... 



--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Goganchic
Дата 17.10.2008, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: нет
Всего: 5



Огромное спасибо за статью, но модификация системной таблицы служебных дескрипторов - действительно грязный метод. Я делаю все намного проще: так как у меня драйвер фильтрующий - то я вполне законно вытираю из буффера, который позже передается в функцию ZwQueryDirectoryFile все то, что пользователю не нужно видеть в листинге директорий.
P.s. может даже напишу статью о том как и что я делаю smile
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.