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

미니필터가 사전 작업( PFLT_PRE_OPERATION_CALLBACK ) 및 사후 작업(PFLT_POST_OPERATION_CALLBACK) 콜백 루틴을 등록하는 I/O의 각 유형에 대해 하나씩 FLT_OPERATION_REGISTRATION 구조체의 가변 길이 배열입니다. 배열의 마지막 요소는 {IRP_MJ_OPERATION_END}이어야 합니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다.

FilterUnloadCallback

미니필터의 FilterUnloadCallback 루틴으로 등록할 PFLT_FILTER_UNLOAD_CALLBACK 형식의 루틴에 대한 포인터입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다. 이 루틴에 대해 NULL 을 지정하면 필터를 언로드할 수 없습니다.

InstanceSetupCallback

미니필터의 InstanceSetupCallback 루틴으로 등록할 PFLT_INSTANCE_SETUP_CALLBACK 형식의 루틴에 대한 포인터입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다. 이 루틴에 대해 NULL 을 지정하면 첨부 파일이 항상 만들어집니다.

InstanceQueryTeardownCallback

미니필터의 InstanceQueryTeardownCallback 루틴으로 등록할 PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 형식의 루틴에 대한 포인터입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다. 이 루틴에 대해 NULL 을 지정하면 인스턴스가 수동으로 분리되지 않습니다.

InstanceTeardownStartCallback

미니필터의 InstanceTeardownStartCallback 루틴으로 등록할 PFLT_INSTANCE_TEARDOWN_CALLBACK 형식의 루틴에 대한 포인터입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다.

InstanceTeardownCompleteCallback

미니필터의 InstanceTeardownCompleteCallback 루틴으로 등록할 PFLT_INSTANCE_TEARDOWN_CALLBACK 형식의 루틴에 대한 포인터입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다.

GenerateFileNameCallback

미니필터의 GenerateFileNameCallback 루틴으로 등록할 PFLT_GENERATE_FILE_NAME 형식의 루틴에 대한 포인터입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다.

NormalizeNameComponentCallback

미니필터의 NormalizeNameComponentCallback 루틴으로 등록할 PFLT_NORMALIZE_NAME_COMPONENT 형식의 루틴에 대한 포인터입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다.

NormalizeContextCleanupCallback

형식의 루틴에 대한 포인터는 미니필터의 NormalizeContextCleanupCallback 루틴으로 등록될 PFLT_NORMALIZE_CONTEXT_CLEANUP. 이 멤버는 선택 사항이며 NULL일 수 있습니다.

TransactionNotificationCallback

(Windows Vista 이상만 해당) 미니필터의 TransactionNotificationCallback 루틴으로 등록할 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 형식의 루틴에 대한 포인터입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다.

NormalizeNameComponentExCallback

(Windows Vista 이상만 해당) 미니필터 드라이버의 NormalizeNameComponentExCallback 루틴으로 등록할 PFLT_NORMALIZE_NAME_COMPONENT_EX 형식의 루틴에 대한 포인터입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다.

NormalizeNameComponentCallback 콜백 루틴과 비교하여 NormalizeNameComponentExCallback 콜백 루틴은 추가 파일 개체 매개 변수 FileObject(PFILE_OBJECT 형식)를 지원합니다. 미니필터 드라이버는 이 매개 변수를 사용하여 TXN_PARAMETER_BLOCK 구조에서 제공하는 것과 같은 추가 정보를 가져올 수 있습니다.

미니필터 드라이버는 NormalizeNameComponentCallback 및 NormalizeNameComponentExCallback 멤버를 모두 NULL로 동시에 설정할 수 있습니다. 그러나 이름 공급자 미니필터 드라이버는 NormalizeNameComponentCallback 또는 NormalizeNameComponentExCallback 콜백 루틴 또는 둘 다를 등록해야 합니다. 예를 들어 추가 FileObject 매개 변수를 사용하지 않는 이름 공급자 미니필터 드라이버는 NormalizeNameComponentExCallback 멤버를 NULL 로 설정하고 NormalizeNameComponentCallback 콜백 루틴만 제공할 수 있습니다.

미니필터 드라이버는 NormalizeNameComponentCallback 콜백NormalizeNameComponentExCallback 콜백 을 모두 제공할 수 있습니다. 이 경우 Windows Vista부터 필터 관리자는 NormalizeNameComponentExCallback 콜백 만 사용합니다. Windows Vista 이전의 Windows 운영 체제의 경우 필터 관리자는 NormalizeNameComponentCallback 콜백 만 사용합니다. 이렇게 하면 모든 버전의 운영 체제에서 동일한 미니필터 드라이버 이진 파일을 실행할 수 있습니다.

SectionNotificationCallback

미니필터의 SectionNotificationCallback 루틴으로 등록할 PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK 형식의 루틴에 대한 포인터입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다. 이 콜백은 FltCreateSectionForDatascan으로 만든 섹션에 대한 I/O 오류 알림을 위해 호출됩니다.

설명

FLT_REGISTRATION 구조는 필터 관리자에게 FilterUnloadCallback(PFLT_FILTER_UNLOAD_CALLBACK) 루틴 및 사전 작업(PFLT_PRE_OPERATION_CALLBACK) 및 사후 작업(PFLT_POST_OPERATION_CALLBACK) 콜백 루틴과 같은 파일 시스템 미니필터에 대한 정보를 제공하는 데 사용됩니다. 미니 필터는 이 구조체에 대한 포인터를 FltRegisterFilterRegistration 매개 변수로 전달합니다.

요구 사항

요구 사항
헤더 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