Compartir a través de


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

Un controlador de minifiltro puede registrar una rutina de tipo PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK como la rutina InstanceQueryTeardownCallback del controlador de minifiltro.

Sintaxis

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK PfltInstanceQueryTeardownCallback;

NTSTATUS PfltInstanceQueryTeardownCallback(
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags
)
{...}

Parámetros

[in] FltObjects

Puntero a una estructura FLT_RELATED_OBJECTS que contiene punteros opacos para los objetos relacionados con la operación actual.

[in] Flags

Máscara de bits de marcas que describen por qué se llamó a la rutina de devolución de llamada de anulación de consulta de instancia determinada. Actualmente no hay marcas definidas.

Valor devuelto

Esta rutina de devolución de llamada devuelve STATUS_SUCCESS o un valor NTSTATUS , como uno de los siguientes:

Código devuelto Descripción
STATUS_FLT_DO_NOT_DETACH
Devolver este valor de estado impide que la instancia del controlador de minifiltro se desasocie. Se trata de un código de error.

Comentarios

Cuando un controlador de minifiltro se registra a sí mismo llamando a FltRegisterFilter desde su rutina DriverEntry , puede registrar una rutina de tipo PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK como la rutina InstanceQueryTeardownCallback del controlador de minifiltro.

Para registrar la rutina InstanceQueryTeardownCallback , el controlador de minifiltro almacena la dirección de una rutina de tipo PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK en el miembro InstanceQueryTeardownCallback de la estructura FLT_REGISTRATION que pasa el controlador de minifiltro como parámetro Registration de FltRegisterFilter.

El administrador de filtros llama a esta rutina para permitir que el controlador de minifiltro responda a una solicitud de desasociación manual. Esta solicitud se recibe cuando una aplicación en modo de usuario llama a FilterDetach o un componente en modo kernel llama a FltDetachVolume.

No se llama a esta rutina para las solicitudes de desasociación automáticas o obligatorias, por ejemplo, cuando se descarga el controlador de minifiltro o se desmonta un volumen.

Si esta rutina devuelve un código NTSTATUS de error o advertencia, como STATUS_FLT_DO_NOT_DETACH, la instancia del controlador de minifiltro no se desasocia del volumen. De lo contrario, la instancia se desasocia.

Si un controlador de minifiltro no define una rutina InstanceQueryTeardownCallback , sus instancias no se pueden desasociar manualmente llamando a FilterDetach o FltDetachVolume.

Requisitos

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

Consulte también

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterDetach

FltDetachVolume

FltRegisterFilter

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK