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 이거나 다음의 조합일 수 있습니다.
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) 콜백 루틴과 같은 파일 시스템 미니필터에 대한 정보를 제공하는 데 사용됩니다. 미니 필터는 이 구조체에 대한 포인터를 FltRegisterFilter에 Registration 매개 변수로 전달합니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | fltkernel.h(Fltkernel.h 포함) |
추가 정보
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP