Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Есть ли в kernel'е аналоги функций GetShortPathName() and GetLongPathName() ? 29.05.02 22:26 Число просмотров: 1018
Автор: vim Статус: Незарегистрированный пользователь
|
> > Исходные данные - это строка текста с именем файла. > > Из-за того, что у файла может быть два имени - длинное > и > > короткое, их оба нужно проверить. В этом вся проблема. > > если список файлов для фильтрации передается драйверу из > usermode то как вариант можно сделать следующее: > > в usermode получить оба имени - длинное и короткое - и > добавить оба > > cb. > > btw > я так понимаю речь идет про winnt/2k/xp?
Нет, немного не так.
У меня есть список файлов, которые должны быть ReadOnly.
При попытке открытия файла я проверяю его наличие в списке R/O файлов, и если он там есть, то делаю access denied.
Задавать оба имени сразу – нельзя, так как помимо первых двух вариантов (длинное или короткое), может быть и третий – часть имени длинная, часть короткая, а это уже ни под какую заранее составленную маску не подходит.
Похоже единственный вариант который я вижу это сделать некий сервис в usermode и ему из драйвера посылать на проверку имя файла (к примеру через shared memory). Тогда он будет вызывать GetLongPathName() и возвращать в драйвер полученное имя.
Не очень красиво, но другой способ не просматривается.
Теоретически на быстродействии сказаться не должно. Операция открытия файла на запись довольно редкая, поэтому задержка на n-милисекунд вроде бы не должна сильно тормозить. По крайне мере в теории.
vim
|
|
|