Как заблокировать перезапись файлов на сетевом диске с помощью минифильтра файловой системы

Я создал драйвер минифильтра, чтобы заблокировать доступ к файлам на сетевом диске. Он работает нормально. Здесь я столкнулся с проблемой, не могу заблокировать редактирование файла в нем. Я проверил следующие значения флагов в методе miniprecreate. FILE_OVERWRITE, FILE_WRITE_DATA, FILE_APPEND_DATA, FILE_WRITE_ATTRIBUTES, FILE_WRITE_EA Вот пример кода, который я использовал.

if((Data->Iopb->Parameters.Create.Options >> 24) ==FILE_APPEND_DATA )                           
                    {

                        Data->IoStatus.Status=STATUS_ACCESS_DENIED;
                        Data->IoStatus.Information=0;
                        FltReleaseFileNameInformation(FileNameInfos);
                        return FLT_PREOP_COMPLETE;
                    }

Но не может заблокировать редактирование файла. Заранее спасибо. Не могли бы вы предоставить решение.


person Antu Philip    schedule 14.03.2019    source источник


Ответы (1)


зарегистрируйте IRP_MJ_WRITE и заблокируйте его таким же образом без if((Data->Iopb->Parameters.Create.Options >> 24) ==FILE_APPEND_DATA )

person 開發源    schedule 26.04.2019