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.
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
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP