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 |
---|---|
|
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 |