Написание процедуры DriverEntry для драйвера минифильтра

Каждый драйвер минифильтра файловой системы должен иметь подпрограмму DriverEntry . Подпрограмма DriverEntry вызывается при загрузке драйвера минифильтра.

Подпрограмма DriverEntry выполняет глобальную инициализацию, регистрирует драйвер минифильтра и инициирует фильтрацию. Эта подпрограмма выполняется в контексте системного потока на PASSIVE_LEVEL IRQL.

Подпрограмма DriverEntry определяется следующим образом:

NTSTATUS 
(*PDRIVER_INITIALIZE) ( 
    IN PDRIVER_OBJECT DriverObject, 
    IN PUNICODE_STRING RegistryPath 
    ); 

DriverEntry имеет два входных параметра. Первый, DriverObject, — это объект драйвера, созданный при загрузке драйвера минифильтра. Второй, RegistryPath, — это указатель на подсчитываемую строку Юникода, содержащую путь к разделу реестра драйвера мини-фильтра.

Подпрограмма DriverEntry драйвера минифильтра должна выполнять следующие действия по порядку:

  1. Выполните необходимую глобальную инициализацию для драйвера минифильтра.

  2. Зарегистрируйте драйвер мини-фильтра, вызвав FltRegisterFilter.

  3. Инициируйте фильтрацию, вызвав FltStartFiltering.

  4. Возвращает соответствующее значение NTSTATUS.

Этот раздел состоит из следующих частей.

Регистрация драйвера минифильтра

Инициирование фильтрации

Возврат состояния из подпрограммы MiniFilter DriverEntry