Función FltRegisterFilter (fltkernel.h)

FltRegisterFilter registra un controlador de minifiltro.

Sintaxis

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

Parámetros

[in] Driver

Puntero al objeto driver para el controlador minifiltro. Debe ser el mismo puntero de objeto de controlador que se pasó como entrada a la rutina DriverEntry del controlador de minifiltro.

[in] Registration

Puntero a una estructura de registro de controlador de minifiltro asignada por el autor de la llamada (FLT_REGISTRATION).

[out] RetFilter

Puntero a una variable asignada por el autor de la llamada que recibe un puntero de filtro opaco para el autor de la llamada.

Valor devuelto

FltRegisterFilter devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes:

Código devuelto Descripción
STATUS_INSUFFICIENT_RESOURCES
FltRegisterFilter encontró un error de asignación de grupo. Se trata de un código de error.
STATUS_INVALID_PARAMETER
Uno de los siguientes:
  • El miembro Version de la estructura Registration no se estableció en FLT_REGISTRATION_VERSION.
  • Una de las rutinas de proveedor de nombres que no son NULL de la estructura de registro se estableció en un valor no válido. Los miembros GenerateFileNameCallback, NormalizeNameComponentCallback y NormalizeNameComponentExCallback de FLT_REGISTRATION apuntan a las rutinas del proveedor de nombres.
STATUS_INVALID_PARAMETER es un código de error.
STATUS_FLT_NOT_INITIALIZED
El Administrador de filtros no se inicializó cuando el filtro intentó registrarse. Asegúrese de que el Administrador de filtros se carga como controlador. Se trata de un código de error.
STATUS_OBJECT_NAME_NOT_FOUND
La clave de servicio de filtro no se encuentra en el Registro.

O bien

La instancia de filtro no está registrada.

Comentarios

Cada controlador de minifiltro debe llamar a FltRegisterFilter desde su rutina DriverEntry para agregarse a la lista global de controladores de minifiltro registrados y proporcionar al Administrador de filtros una lista de funciones de devolución de llamada y otra información sobre el controlador de minifiltro.

FltRegisterFilter devuelve un puntero de filtro opaco para el controlador de minifiltro en *RetFilter. Este valor de puntero identifica de forma única el controlador de minifiltro y permanece constante siempre que se cargue el controlador de minifiltro. El controlador minifiltro debe guardar este puntero, ya que es un parámetro necesario para FltStartFiltering y FltUnregisterFilter.

Después de llamar a FltRegisterFilter, un controlador de minifiltro normalmente llama a FltStartFiltering para comenzar a filtrar las operaciones de E/S.

Un controlador de minifiltro solo puede llamar a FltRegisterFilter para registrarse, no a otro controlador de minifiltro.

Para anular el registro, un controlador de minifiltro llama a FltUnregisterFilter..

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
Library FltMgr.lib
Archivo DLL Fltmgr.sys
IRQL <= APC_LEVEL

Consulte también

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter