Поделиться через


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

Каждый драйвер минифильтра должен вызывать FltRegisterFilter из своей процедуры DriverEntry , чтобы добавить себя в глобальный список зарегистрированных драйверов минифильтра и предоставить диспетчеру фильтров список процедур обратного вызова и другие сведения о драйвере.

В примере MiniSpy драйвер мини-фильтра регистрируется, как показано в следующем примере кода:

NTSTATUS status;
status = FltRegisterFilter(
           DriverObject,                  //Driver
           &FilterRegistration,           //Registration
           &MiniSpyData.FilterHandle);    //RetFilter

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

Кроме того, у FltRegisterFilter есть выходной параметр RetFilter, который получает указатель непрозрачного фильтра для драйвера минифильтра. Этот указатель фильтра является обязательным входным параметром для многих подпрограмм поддержки FltXxx, включая FltStartFiltering и FltUnregisterFilter.