Функция FltRegisterFilter (fltkernel.h)

FltRegisterFilter регистрирует драйвер минифильтра.

Синтаксис

NTSTATUS FLTAPI FltRegisterFilter(
  [in]  PDRIVER_OBJECT         Driver,
  [in]  const FLT_REGISTRATION *Registration,
  [out] PFLT_FILTER            *RetFilter
);

Параметры

[in] Driver

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

[in] Registration

Указатель на структуру регистрации драйвера минифильтра, выделенной вызывающим объектом (FLT_REGISTRATION).

[out] RetFilter

Указатель на переменную, выделенную вызывающим объектом, которая получает непрозрачный указатель фильтра для вызывающего объекта.

Возвращаемое значение

FltRegisterFilter возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих значений:

Код возврата Описание
STATUS_INSUFFICIENT_RESOURCES
FltRegisterFilter столкнулся с ошибкой выделения пула. Это код ошибки.
STATUS_INVALID_PARAMETER
Это может быть:
  • Для элемента Version структуры регистрации не задано значение FLT_REGISTRATION_VERSION.
  • Одной из подпрограмм поставщика имен, отличных от NULL, в структуре регистрации было задано недопустимое значение. Элементы GenerateFileNameCallback, NormalizeNameComponentCallback и NormalizeNameComponentExCallbackFLT_REGISTRATION указывают на подпрограммы поставщика имен.
STATUS_INVALID_PARAMETER — это код ошибки.
STATUS_FLT_NOT_INITIALIZED
Диспетчер фильтров не инициализирован при попытке регистрации фильтра. Убедитесь, что диспетчер фильтров загружен в качестве драйвера. Это код ошибки.
STATUS_OBJECT_NAME_NOT_FOUND
Ключ службы фильтра не найден в реестре.

-или-

Экземпляр фильтра не зарегистрирован.

Комментарии

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

FltRegisterFilter возвращает непрозрачный указатель фильтра для драйвера минифильтра в *RetFilter. Это значение указателя однозначно идентифицирует драйвер минифильтра и остается постоянным до тех пор, пока драйвер минифильтра загружен. Драйвер минифильтра должен сохранить этот указатель, так как это обязательный параметр для FltStartFiltering и FltUnregisterFilterer.

После вызова FltRegisterFilter драйвер минифильтра обычно вызывает FltStartFiltering , чтобы начать фильтрацию операций ввода-вывода.

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

Чтобы отменить регистрацию, драйвер минифильтра вызывает FltUnregisterFilter..

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

См. также раздел

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter