estrutura FLT_REGISTRATION (fltkernel.h)
A estrutura FLT_REGISTRATION é passada como um parâmetro para FltRegisterFilter.
Sintaxe
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;
Membros
Size
O tamanho, em bytes, da estrutura FLT_REGISTRATION. Os drivers de minifiltro devem definir esse membro como sizeof(FLT_REGISTRATION).
Version
O nível de revisão da estrutura FLT_REGISTRATION. Os drivers de minifiltro devem definir esse membro como FLT_REGISTRATION_VERSION.
Flags
Uma máscara de bits de sinalizadores de registro de minifiltro. Esse membro pode ser NULL ou uma combinação do seguinte.
ContextRegistration
Uma matriz de comprimento variável de estruturas de FLT_CONTEXT_REGISTRATION , uma para cada tipo de contexto que o minifiltro usa. O último elemento na matriz deve ser {FLT_CONTEXT_END}. Esse membro é opcional e pode ser NULL.
OperationRegistration
Uma matriz de comprimento variável de estruturas de FLT_OPERATION_REGISTRATION , uma para cada tipo de E/S para a qual o minifiltro registra rotinas de retorno de chamada de pré-operação (PFLT_PRE_OPERATION_CALLBACK) e postoperation (PFLT_POST_OPERATION_CALLBACK). O último elemento na matriz deve ser {IRP_MJ_OPERATION_END}. Esse membro é opcional e pode ser NULL.
FilterUnloadCallback
Um ponteiro para uma rotina do tipo PFLT_FILTER_UNLOAD_CALLBACK ser registrado como a rotina FilterUnloadCallback do minifiltro. Esse membro é opcional e pode ser NULL. Observe que, se NULL for especificado para essa rotina, o filtro nunca poderá ser descarregado.
InstanceSetupCallback
Um ponteiro para uma rotina do tipo PFLT_INSTANCE_SETUP_CALLBACK ser registrado como a rotina InstanceSetupCallback do minifiltro. Esse membro é opcional e pode ser NULL. Observe que, se NULL for especificado para essa rotina, o anexo sempre será feito.
InstanceQueryTeardownCallback
Um ponteiro para uma rotina do tipo PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK ser registrado como a rotina InstanceQueryTeardownCallback do minifiltro. Esse membro é opcional e pode ser NULL. Observe que, se NULL for especificado para essa rotina, as instâncias nunca serão desanexadas manualmente.
InstanceTeardownStartCallback
Um ponteiro para uma rotina do tipo PFLT_INSTANCE_TEARDOWN_CALLBACK ser registrado como a rotina InstanceTeardownStartCallback do minifiltro. Esse membro é opcional e pode ser NULL.
InstanceTeardownCompleteCallback
Um ponteiro para uma rotina do tipo PFLT_INSTANCE_TEARDOWN_CALLBACK ser registrado como a rotina InstanceTeardownCompleteCallback do minifiltro. Esse membro é opcional e pode ser NULL.
GenerateFileNameCallback
Um ponteiro para uma rotina do tipo PFLT_GENERATE_FILE_NAME ser registrado como a rotina GenerateFileNameCallback do minifiltro. Esse membro é opcional e pode ser NULL.
NormalizeNameComponentCallback
Um ponteiro para uma rotina do tipo PFLT_NORMALIZE_NAME_COMPONENT ser registrado como a rotina NormalizeNameComponentCallback do minifiltro. Esse membro é opcional e pode ser NULL.
NormalizeContextCleanupCallback
Um ponteiro para uma rotina do tipo PFLT_NORMALIZE_CONTEXT_CLEANUP ser registrado como a rotina NormalizeContextCleanupCallback do minifiltro. Esse membro é opcional e pode ser NULL.
TransactionNotificationCallback
(Somente Windows Vista e posterior.) Um ponteiro para uma rotina do tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK ser registrado como a rotina TransactionNotificationCallback do minifiltro. Esse membro é opcional e pode ser NULL.
NormalizeNameComponentExCallback
(Somente Windows Vista e posterior.) Um ponteiro para uma rotina do tipo PFLT_NORMALIZE_NAME_COMPONENT_EX ser registrado como a rotina NormalizeNameComponentExCallback do driver de minifiltro. Esse membro é opcional e pode ser NULL.
Em comparação com a rotina de retorno de chamada NormalizeNameComponentCallback , a rotina de retorno de chamada NormalizeNameComponentExCallback dá suporte a um parâmetro de objeto de arquivo adicional, FileObject (do tipo PFILE_OBJECT). Um driver de minifiltro pode usar esse parâmetro para adquirir informações adicionais, como as fornecidas pela estrutura TXN_PARAMETER_BLOCK .
Um driver de minifiltro pode definir simultaneamente os membros NormalizeNameComponentCallback e NormalizeNameComponentExCallback como NULL; no entanto, um driver de minifiltro do provedor de nomes deve registrar uma rotina de retorno de chamada NormalizeNameComponentCallback ou NormalizeNameComponentExCallback ou ambos. Por exemplo, um driver de minifiltro do provedor de nomes que não tem uso para o parâmetro FileObject adicional pode definir o membro NormalizeNameComponentExCallback como NULL e fornecer apenas uma rotina de retorno de chamada NormalizeNameComponentCallback .
Um driver de minifiltro pode fornecer um retorno de chamada NormalizeNameComponentCallback e um retorno de chamada NormalizeNameComponentExCallback . Nesse caso, a partir do Windows Vista, o gerenciador de filtros usará apenas o retorno de chamada NormalizeNameComponentExCallback ; para sistemas operacionais Windows antes do Windows Vista, o gerenciador de filtros usará apenas o retorno de chamada NormalizeNameComponentCallback . Isso permite que o mesmo binário de driver de minifiltro seja executado em todas as versões do sistema operacional.
SectionNotificationCallback
O ponteiro para uma rotina do tipo PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK ser registrado como a rotina SectionNotificationCallback do minifiltro. Esse membro é opcional e pode ser NULL. Esse retorno de chamada é chamado para notificações de falhas de E/S para seções criadas com FltCreateSectionForDatascan.
Comentários
A estrutura FLT_REGISTRATION é usada para fornecer informações sobre um minifiltro do sistema de arquivos, como uma rotina FilterUnloadCallback (PFLT_FILTER_UNLOAD_CALLBACK) e pré-operação (PFLT_PRE_OPERATION_CALLBACK) e rotinas de retorno de chamada de postoperation (PFLT_POST_OPERATION_CALLBACK) para o gerenciador de filtros. O minifiltro passa um ponteiro para essa estrutura como o parâmetro Registration para FltRegisterFilter.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | fltkernel.h (inclua Fltkernel.h) |
Confira também
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP