FLT_REGISTRATION структура (fltkernel.h)

Структура FLT_REGISTRATION передается в качестве параметра в FltRegisterFilter.

Синтаксис

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;

Члены

Size

Размер структуры FLT_REGISTRATION в байтах. Драйверы минифильтра должны задать для этого элемента значение sizeof(FLT_REGISTRATION).

Version

Уровень редакции структуры FLT_REGISTRATION. Драйверы мини-фильтра должны задать для этого элемента значение FLT_REGISTRATION_VERSION.

Flags

Битовая маска флагов регистрации минифильтра. Этот элемент может иметь значение NULL или сочетание следующего.

Значение Значение
FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP
Если этот флаг установлен, мини-фильтр не выгружается в ответ на запросы на остановку службы, даже если элемент FilterUnloadCallback не имеет значения NULL.
FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS
Если этот флаг установлен, мини-фильтр будет поддерживать фильтрацию запросов именованного канала и mailslot. Этот флаг появился в Windows 8.
FLTFL_REGISTRATION_SUPPORT_DAX_VOLUME
Если этот флаг установлен, мини-фильтр будет поддерживать подключение к тому с прямым доступом (DAX). Это укажет диспетчеру фильтров, что мини-фильтр будет фильтровать том DAX. Этот флаг появился в Windows 10 версии 1607.

ContextRegistration

Массив FLT_CONTEXT_REGISTRATION структур переменной длины, по одному для каждого типа контекста, используемого минифильтром. Последним элементом массива должен быть {FLT_CONTEXT_END}. Этот элемент является необязательным и может иметь значение NULL.

OperationRegistration

Массив FLT_OPERATION_REGISTRATION структур переменной длины, по одному для каждого типа ввода-вывода, для которого минифильтр регистрирует процедуры обратного вызова перед операцией (PFLT_PRE_OPERATION_CALLBACK) и после операции (PFLT_POST_OPERATION_CALLBACK). Последним элементом в массиве должен быть {IRP_MJ_OPERATION_END}. Этот элемент является необязательным и может иметь значение NULL.

FilterUnloadCallback

Указатель на подпрограмму типа PFLT_FILTER_UNLOAD_CALLBACK регистрироваться как подпрограмма FilterUnloadCallback мини-фильтра. Этот элемент является необязательным и может иметь значение NULL. Обратите внимание, что если для этой подпрограммы задано значение NULL , то выгрузить фильтр невозможно.

InstanceSetupCallback

Указатель на подпрограмму типа PFLT_INSTANCE_SETUP_CALLBACK для регистрации в качестве подпрограммы InstanceSetupCallback мини-фильтра. Этот элемент является необязательным и может иметь значение NULL. Обратите внимание, что если для этой подпрограммы задано значение NULL , вложение всегда выполняется.

InstanceQueryTeardownCallback

Указатель на подпрограмму типа PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK регистрироваться как подпрограмма InstanceQueryTeardownCallback мини-фильтра. Этот элемент является необязательным и может иметь значение NULL. Обратите внимание, что если для этой подпрограммы задано значение NULL , экземпляры никогда не будут отсоединяться вручную.

InstanceTeardownStartCallback

Указатель на подпрограмму типа PFLT_INSTANCE_TEARDOWN_CALLBACK регистрировать как подпрограмму InstanceTeardownStartCallback мини-фильтра. Этот элемент является необязательным и может иметь значение NULL.

InstanceTeardownCompleteCallback

Указатель на подпрограмму типа PFLT_INSTANCE_TEARDOWN_CALLBACK для регистрации в качестве подпрограммы InstanceTeardownCompleteCallback мини-фильтра. Этот элемент является необязательным и может иметь значение NULL.

GenerateFileNameCallback

Указатель на подпрограмму типа PFLT_GENERATE_FILE_NAME регистрировать как подпрограмму GenerateFileNameCallback мини-фильтра. Этот элемент является необязательным и может иметь значение NULL.

NormalizeNameComponentCallback

Указатель на подпрограмму типа PFLT_NORMALIZE_NAME_COMPONENT регистрироваться как подпрограмма NormalizeNameComponentCallback мини-фильтра. Этот элемент является необязательным и может иметь значение NULL.

NormalizeContextCleanupCallback

Указатель на подпрограмму типа PFLT_NORMALIZE_CONTEXT_CLEANUP регистрироваться как подпрограмма NormalizeContextCleanUpCallback мини-фильтра. Этот элемент является необязательным и может иметь значение NULL.

TransactionNotificationCallback

(Только Windows Vista и более поздних версий.) Указатель на подпрограмму типа PFLT_TRANSACTION_NOTIFICATION_CALLBACK для регистрации в качестве подпрограммы TransactionNotificationCallback мини-фильтра. Этот элемент является необязательным и может иметь значение NULL.

NormalizeNameComponentExCallback

(Только Windows Vista и более поздних версий.) Указатель на подпрограмму типа PFLT_NORMALIZE_NAME_COMPONENT_EX регистрироваться как подпрограмма NormalizeNameComponentExCallback драйвера минифильтра. Этот элемент является необязательным и может иметь значение NULL.

По сравнению с подпрограммой обратного вызова NormalizeNameComponentCallback подпрограмма обратного вызова NormalizeNameComponentExCallback поддерживает дополнительный параметр объекта файла FileObject (типа PFILE_OBJECT). Драйвер минифильтра может использовать этот параметр для получения дополнительных сведений, например сведений, предоставляемых структурой TXN_PARAMETER_BLOCK .

Драйвер мини-фильтра может одновременно задать для элементов NormalizeNameComponentCallback и NormalizeNameComponentExCallbackзначение NULL; однако драйвер минифильтра поставщика имен должен зарегистрировать подпрограмму обратного вызова NormalizeNameComponentCallback или NormalizeNameComponentExCallback либо оба метода. Например, драйвер минифильтра поставщика имен, который не используется для дополнительного параметра FileObject , может задать для члена NormalizeNameComponentExCallbackзначение NULL и предоставить только подпрограмму обратного вызова NormalizeNameComponentCallback .

Драйвер мини-фильтра может предоставлять как обратный вызов NormalizeNameComponentCallback , так и обратный вызов NormalizeNameComponentExCallback . В этом случае, начиная с Windows Vista, диспетчер фильтров будет использовать только обратный вызов NormalizeNameComponentExCallback ; Для операционных систем Windows до Windows Vista диспетчер фильтров будет использовать только обратный вызов NormalizeNameComponentCallback . Это позволяет запускать один и тот же двоичный файл драйвера минифильтра во всех версиях операционной системы.

SectionNotificationCallback

Указатель на подпрограмму типа PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK для регистрации в качестве подпрограммы SectionNotificationCallback мини-фильтра. Этот элемент является необязательным и может иметь значение NULL. Этот обратный вызов вызывается для уведомлений об ошибках ввода-вывода для разделов, созданных с помощью FltCreateSectionForDatascan.

Комментарии

Структура FLT_REGISTRATION используется для предоставления диспетчеру фильтров сведений о минифильтре файловой системы, таких как подпрограмма FilterUnloadCallback (PFLT_FILTER_UNLOAD_CALLBACK), а также подпрограммы обратного вызова (PFLT_PRE_OPERATION_CALLBACK) и после операции (PFLT_POST_OPERATION_CALLBACK). Мини-фильтр передает указатель на эту структуру в качестве параметра Registrationв FltRegisterFilter.

Требования

Требование Значение
Заголовок fltkernel.h (включая Fltkernel.h)

См. также раздел

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