PFLT_FILTER_UNLOAD_CALLBACK función de devolución de llamada (fltkernel.h)

Un controlador de minifiltro puede registrar una rutina de tipo PFLT_FILTER_UNLOAD_CALLBACK como rutina FilterUnloadCallback del controlador de minifiltro.

Sintaxis

PFLT_FILTER_UNLOAD_CALLBACK PfltFilterUnloadCallback;

NTSTATUS PfltFilterUnloadCallback(
  FLT_FILTER_UNLOAD_FLAGS Flags
)
{...}

Parámetros

Flags

Máscara de bits de marcas que describen la solicitud de descarga. Este parámetro puede ser NULL o lo siguiente:

Marca Significado
FLTFL_FILTER_UNLOAD_MANDATORY El administrador de filtros establece esta marca para indicar que la operación de descarga es obligatoria.

Valor devuelto

Esta rutina de devolución de llamada devuelve STATUS_SUCCESS o un valor NTSTATUS como el siguiente:

Código de retorno Descripción
STATUS_FLT_DO_NOT_DETACH Si la operación de descarga no es obligatoria, devolver este valor de estado impide que se descargue el controlador de minifiltro. Se trata de un código de error.

Comentarios

Cuando un controlador de minifiltro se registra a sí mismo llamando a FltRegisterFilter, puede registrar una rutina FilterUnloadCallback . Para registrar esta rutina de devolución de llamada, el controlador de minifiltro almacena la dirección de una rutina de tipo PFLT_FILTER_UNLOAD_CALLBACK en el campo FilterUnloadCallback de la estructura FLT_REGISTRATION que el controlador de minifiltro pasa como parámetro a FltRegisterFilter.

Los controladores de minifiltro no son necesarios para registrar una rutina FilterUnloadCallback . Sin embargo, se recomienda encarecidamente registrar una rutina de descarga. Si un controlador de minifiltro no registra una rutina FilterUnloadCallback , no se puede descargar.

Cuando un controlador de minifiltro registra una rutina FilterUnloadCallback :

  • El administrador de filtros llama a la rutina FilterUnloadCallback para notificar al controlador de minifiltro que el administrador de filtros está a punto de descargar el controlador de minifiltro.

  • Si la operación de descarga no es obligatoria y la rutina FilterUnloadCallback devuelve un código NTSTATUS de error o advertencia, como STATUS_FLT_DO_NOT_DETACH, el controlador de minifiltro no se descarga. De lo contrario, se descarga el controlador de minifiltro.

  • Si la marca FLTFL_FILTER_UNLOAD_MANDATORY se establece en el parámetro Flags , la operación de descarga es obligatoria y el controlador de minifiltro no puede impedir que se descargue.

Consulte Cuando se llama a la rutina FilterUnloadCallback para obtener más información sobre las posibles causas de descarga y el proceso de descarga del controlador de minifiltro.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado fltkernel.h (incluya Fltkernel.h)
IRQL PASSIVE_LEVEL

Consulte también

FLT_REGISTRATION

FltRegisterFilter