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.

Valor Significado
FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP
Se esse sinalizador estiver definido, o minifiltro não será descarregado em resposta a solicitações de parada de serviço, mesmo que o membro FilterUnloadCallback não seja NULL.
FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS
Se esse sinalizador estiver definido, o minifiltro dará suporte à filtragem de solicitações nomeadas de pipe e maillot. Este sinalizador foi introduzido em Windows 8.
FLTFL_REGISTRATION_SUPPORT_DAX_VOLUME
Se esse sinalizador estiver definido, o minifiltro dará suporte à anexação a um volume DEX (acesso direto). Isso indicará ao Gerenciador de Filtros que o minifiltro filtrará o volume DAX. Esse sinalizador foi introduzido no Windows 10, versão 1607.

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

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