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 rutina de del controlador de minifiltro InstanceQueryTeardownCallback.

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 de 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 la consulta de instancia determinada. Actualmente no hay marcas definidas.

Valor devuelto

Esta rutina de devolución de llamada devuelve STATUS_SUCCESS o un valor de 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.

Observaciones

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

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 InstanceQueryTeardownCallback miembro 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 el controlador de minifiltro se descarga o se desmonta un volumen.

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

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

Requisitos

Requisito Valor
de la plataforma de destino de Escritorio
encabezado de 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