Господа, такая ситуация: Пишу драйвер-перехватчик файловой системы, что-то вроде простого фильтра доступа. Все сделано и работает нормально. Локально. Но если "секьюрный" каталог расшарить, то с другой машины можно запросто в него войти, не взирая на все старания драйвера. Драйвер перехватывает: ntCreateFile, ntOpenFile и NtQueryDirectoryFile. А теперь вопрос: какими ф-циями пользуется винда для доступа к файлам и каталогам по сети и если теми что уже перехватываются, то где об этом можно почитать (интересно как она это делает, флажки там и все такое). Похоже что я просто что-то упустил, но что... Заранее очень благодарен
Можно перехватить ZwCreateSection, потом по FileHandle получить структуру FILE_OBJECT с помощью ObReferenceObjectByHandle. Из нее можно достать DEVICE_OBJECT, а из него DeviceType в котором будет храниться тип девайса вызвавшего твой файл, список в msdn посмотри... А вообще, если я правильно понял тебе не надо узнавать никакой тип, просто перехвати ZwCreateSection.
Ессно. Эти ф-ции вызывают user mode проги работающие на конкретном компе. При сетевом доступе система сформирует IRPs и пошлёт их вниз по storage stack. А теперь ответ - пиши FS minifilter без всяких hooks и всё будет работать.