estructura FLT_REGISTRATION (fltkernel.h)

La estructura FLT_REGISTRATION se pasa como parámetro a FltRegisterFilter.

Sintaxis

typedef struct _FLT_REGISTRATION {
  USHORT                                      Size;
  USHORT                                      Version;
  FLT_REGISTRATION_FLAGS                      Flags;
  const FLT_CONTEXT_REGISTRATION              *ContextRegistration;
  const FLT_OPERATION_REGISTRATION            *OperationRegistration;
  PFLT_FILTER_UNLOAD_CALLBACK                 FilterUnloadCallback;
  PFLT_INSTANCE_SETUP_CALLBACK                InstanceSetupCallback;
  PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK       InstanceQueryTeardownCallback;
  PFLT_INSTANCE_TEARDOWN_CALLBACK             InstanceTeardownStartCallback;
  PFLT_INSTANCE_TEARDOWN_CALLBACK             InstanceTeardownCompleteCallback;
  PFLT_GENERATE_FILE_NAME                     GenerateFileNameCallback;
  PFLT_NORMALIZE_NAME_COMPONENT               NormalizeNameComponentCallback;
  PFLT_NORMALIZE_CONTEXT_CLEANUP              NormalizeContextCleanupCallback;
  PFLT_TRANSACTION_NOTIFICATION_CALLBACK      TransactionNotificationCallback;
  PFLT_NORMALIZE_NAME_COMPONENT_EX            NormalizeNameComponentExCallback;
  PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK SectionNotificationCallback;
} FLT_REGISTRATION, *PFLT_REGISTRATION;

Miembros

Size

Tamaño, en bytes, de la estructura FLT_REGISTRATION. Los controladores de minifiltro deben establecer este miembro en sizeof(FLT_REGISTRATION).

Version

Nivel de revisión de la estructura FLT_REGISTRATION. Los controladores de minifiltro deben establecer este miembro en FLT_REGISTRATION_VERSION.

Flags

Máscara de bits de marcas de registro de minifiltro. Este miembro puede ser NULL o una combinación de lo siguiente.

Valor Significado
FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP
Si se establece esta marca, el minifiltro no se descarga en respuesta a las solicitudes de detención del servicio, aunque el miembro FilterUnloadCallback no sea NULL.
FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS
Si se establece esta marca, el minifiltro admitirá el filtrado de solicitudes de canalización con nombre y mailslot. Esta marca se introdujo en Windows 8.
FLTFL_REGISTRATION_SUPPORT_DAX_VOLUME
Si se establece esta marca, el minifiltro admitirá la conexión a un volumen de acceso directo (DAX). Esto indicará al Administrador de filtros que el minifiltro filtrará el volumen DAX. Esta marca se introdujo en Windows 10, versión 1607.

ContextRegistration

Matriz de longitud variable de FLT_CONTEXT_REGISTRATION estructuras, una para cada tipo de contexto que usa el minifiltro. El último elemento de la matriz debe ser {FLT_CONTEXT_END}. Este miembro es opcional y puede ser NULL.

OperationRegistration

Matriz de longitud variable de estructuras de FLT_OPERATION_REGISTRATION , una para cada tipo de E/S para la que el minifiltro registra las rutinas de devolución de llamada (PFLT_PRE_OPERATION_CALLBACK) y postoperación (PFLT_POST_OPERATION_CALLBACK). El último elemento de la matriz debe ser {IRP_MJ_OPERATION_END}. Este miembro es opcional y puede ser NULL.

FilterUnloadCallback

Puntero a una rutina de tipo PFLT_FILTER_UNLOAD_CALLBACK que se va a registrar como rutina FilterUnloadCallback del minifiltro. Este miembro es opcional y puede ser NULL. Tenga en cuenta que si se especifica NULL para esta rutina, el filtro nunca se puede descargar.

InstanceSetupCallback

Puntero a una rutina de tipo PFLT_INSTANCE_SETUP_CALLBACK que se va a registrar como rutina InstanceSetupCallback del minifiltro. Este miembro es opcional y puede ser NULL. Tenga en cuenta que si se especifica NULL para esta rutina, los datos adjuntos siempre se realizan.

InstanceQueryTeardownCallback

Puntero a una rutina de tipo PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK que se va a registrar como rutina InstanceQueryTeardownCallback del minifiltro. Este miembro es opcional y puede ser NULL. Tenga en cuenta que si se especifica NULL para esta rutina, las instancias nunca se desasociarán manualmente.

InstanceTeardownStartCallback

Puntero a una rutina de tipo PFLT_INSTANCE_TEARDOWN_CALLBACK que se va a registrar como la rutina InstanceTeardownStartCallback del minifiltro. Este miembro es opcional y puede ser NULL.

InstanceTeardownCompleteCallback

Puntero a una rutina de tipo PFLT_INSTANCE_TEARDOWN_CALLBACK que se va a registrar como la rutina InstanceTeardownCompleteCallback del minifiltro. Este miembro es opcional y puede ser NULL.

GenerateFileNameCallback

Puntero a una rutina de tipo PFLT_GENERATE_FILE_NAME que se va a registrar como rutina GenerateFileNameCallback del minifiltro. Este miembro es opcional y puede ser NULL.

NormalizeNameComponentCallback

Puntero a una rutina de tipo PFLT_NORMALIZE_NAME_COMPONENT que se va a registrar como la rutina NormalizeNameComponentCallback del minifiltro. Este miembro es opcional y puede ser NULL.

NormalizeContextCleanupCallback

Puntero a una rutina de tipo PFLT_NORMALIZE_CONTEXT_CLEANUP que se va a registrar como la rutina NormalizeContextCleanupCallback del minifiltro. Este miembro es opcional y puede ser NULL.

TransactionNotificationCallback

(Solo Windows Vista y versiones posteriores). Puntero a una rutina de tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK que se va a registrar como rutina TransactionNotificationCallback del minifiltro. Este miembro es opcional y puede ser NULL.

NormalizeNameComponentExCallback

(Solo Windows Vista y versiones posteriores). Puntero a una rutina de tipo PFLT_NORMALIZE_NAME_COMPONENT_EX que se va a registrar como la rutina NormalizeNameComponentExCallback del controlador de minifiltro. Este miembro es opcional y puede ser NULL.

En comparación con la rutina de devolución de llamada NormalizeNameComponentCallback , la rutina de devolución de llamada NormalizeNameComponentExCallback admite un parámetro de objeto de archivo adicional, FileObject (de tipo PFILE_OBJECT). Un controlador de minifiltro puede usar este parámetro para adquirir información adicional, como la proporcionada por la estructura TXN_PARAMETER_BLOCK .

Un controlador de minifiltro puede establecer simultáneamente los miembros NormalizeNameComponentCallback y NormalizeNameComponentExCallback en NULL; Sin embargo, un controlador minifiltro del proveedor de nombres debe registrar una rutina de devolución de llamada NormalizeNameComponentCallback o NormalizeNameComponentExCallback , o ambas. Por ejemplo, un controlador minifiltro del proveedor de nombres que no tiene ningún uso para el parámetro FileObject adicional puede establecer el miembro NormalizeNameComponentExCallback en NULL y proporcionar solo una rutina de devolución de llamada NormalizeNameComponentCallback .

Un controlador de minifiltro puede proporcionar una devolución de llamada NormalizeNameComponentCallback y una devolución de llamada NormalizeNameComponentExCallback . En este caso, a partir de Windows Vista, el administrador de filtros usará solo la devolución de llamada NormalizeNameComponentExCallback ; para los sistemas operativos Windows anteriores a Windows Vista, el administrador de filtros usará solo la devolución de llamada NormalizeNameComponentCallback . Esto permite que el mismo archivo binario del controlador de minifiltro se ejecute en todas las versiones del sistema operativo.

SectionNotificationCallback

Puntero a una rutina de tipo PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK que se va a registrar como rutina SectionNotificationCallback del minifiltro. Este miembro es opcional y puede ser NULL. Esta devolución de llamada se llama para recibir notificaciones de errores de E/S para las secciones creadas con FltCreateSectionForDatascan.

Comentarios

La estructura de FLT_REGISTRATION se usa para proporcionar información sobre un minifiltro del sistema de archivos, como una rutina y preoperación (PFLT_FILTER_UNLOAD_CALLBACK) FilterUnloadCallback (PFLT_PRE_OPERATION_CALLBACK) y rutinas de devolución de llamada de postoperación (PFLT_POST_OPERATION_CALLBACK), al administrador de filtros. El minifiltro pasa un puntero a esta estructura como parámetro Registration a FltRegisterFilter.

Requisitos

Requisito Valor
Header fltkernel.h (incluya Fltkernel.h)

Consulte también

FLT_CONTEXT_REGISTRATION

FLT_OPERATION_REGISTRATION

FltRegisterFilter

PFLT_FILTER_UNLOAD_CALLBACK

PFLT_GENERATE_FILE_NAME

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

PFLT_NORMALIZE_CONTEXT_CLEANUP

PFLT_NORMALIZE_NAME_COMPONENT

PFLT_NORMALIZE_NAME_COMPONENT_EX

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK

PFLT_TRANSACTION_NOTIFICATION_CALLBACK