Инициализация фильтрации
После вызова FltRegisterFilter подпрограмма DriverEntry драйвера минифильтра обычно вызывает FltStartFiltering , чтобы начать фильтрацию операций ввода-вывода.
Каждый драйвер минифильтра должен вызывать FltStartFiltering из своей подпрограммы DriverEntry , чтобы уведомить диспетчер фильтров о том, что драйвер минифильтра готов начать присоединение к томам и фильтрацию запросов ввода-вывода. После того как драйвер минифильтра вызывает FltStartFiltering, диспетчер фильтров рассматривает драйвер минифильтра как полностью активный драйвер минифильтра, представляя ему запросы ввода-вывода и уведомления о томах, к которым необходимо подключиться. Драйвер минифильтра должен быть готов к началу получения этих запросов ввода-вывода и уведомлений еще до возврата FltStartFiltering .
В примере драйвера MiniSpy вызывается метод FltStartFiltering , как показано в следующем примере кода:
status = FltStartFiltering( MiniSpyData.FilterHandle );
if( !NT_SUCCESS( status )) {
FltUnregisterFilter( MiniSpyData.FilterHandle );
}
Если вызов FltStartFiltering не возвращает STATUS_SUCCESS, драйвер минифильтра должен вызвать FltUnregisterFilter , чтобы отменить регистрацию.