Здравствуйте, Господа, такой вопрос: я хочу научить свой драйвер-перехватчик файловой системы перехватывать обращения пользователей локальной сети к моим файлам и каталогам (расшаренные файлы и каталоги, сетевые диски и т.п.). Возможно ли это и что нужно для этого перехватить (какие ф-ции API, может IRP)? Как я уже заметил, перехвата ф-ций ntCreateFile, ntOpenFile и ntQueryDirectoryFile для этого недостаточно. Что посоветуете? Благодарю заранее
Немного уточню: в конце концов, драйвер должен просто отказывать в доступе к некоторым файлам/каталогам, а также показывать подставную информацию о размере файлов. Локально все уже работает, но при доступе из локальной сети - обращения к файлам даже не регистрируются, как будто система пользуется другими ф-циями/методами/путями.
Почему же сразу минифильтр? Можно и фильтр, а минифильтры это только если полноценная поддержка Windows XP не нужна. И при чём тут storage stack, непонятно, в данном случае это будет file system stack. Аттач к файловым системам типа pDeviceObject -> DeviceType == FILE_DEVICE_NETWORK_FILE_SYSTEM, как минимум, нужен будет. За более подробной информацией смотрите исходный код драйвера Srv (в исходниках NT4 оно есть), а также MRxSmb в WDK (для общего развития не помешает). Надо смотреть, а сейчас я навскидку не помню уже точно как там всё это работает. За работу файлами по сети отвечает именно Srv, но как именно он это делает, надо смотреть, я сейчас даже не уверен, что обычного файлового фильтра будет достаточно.