Здравствуйте, Аноним, Вы писали:
А>Здравствуйте всем! А>Возникла следующая ситуация: А>имеется драйвер-фильтр, который я хочу открыть в приложении с помощью функции А> m_hDriver = CreateFile( А> IPM_SYMBOLIC_DRIVER_NAME, А> GENERIC_READ | GENERIC_WRITE, А> 0, А> NULL, А> OPEN_EXISTING, А> 0, А> NULL А> );
А>Если приложение работает под админом — все отлично. Как только запускаю приложение А>под пользователем без прав админа, при открытии драйвера появляется ошибка access denied.
А>В связи с этим хотелось бы спросить у участников форума, возможно ли открытие драйвера под user-ом А>с помощью CreateFile. Может быть помогут некие манипуляции с параметром LPSECURITY_ATTRIBUTES, который сейчас NULL.
Про общий случай и конкретно про драйвер-фильтр не скажу, но сам я однажды столкнулся с такой же задачей, когда дорабатывал для себя FileDisk: захотелось, чтобы монтировать диски мог кто угодно, а не только админ. Всё точно так же упёрлось в невозможность открытия устройства. Я заменил в коде драйвера вызов создания устройства IoCreateDevice на IoCreateDeviceSecure, подсунув ему соответствующим образом настроенный набор разрешающих привилегий, — всё сразу заработало.