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
ミニフィルターが使用するコンテキストの種類ごとに 1 つずつ、 FLT_CONTEXT_REGISTRATION 構造体の可変長配列。 配列の最後の要素は {FLT_CONTEXT_END} である必要があります。 このメンバーは省略可能であり、 NULL にすることができます。
OperationRegistration
ミニフィルターがプリ操作 (PFLT_PRE_OPERATION_CALLBACK) と事後操作 (PFLT_POST_OPERATION_CALLBACK) コールバック ルーチンを登録する I/O の種類ごとに 1 つずつ、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) コールバック ルーチンなどのファイル システム ミニフィルターに関する情報をフィルター マネージャーに提供するために使用されます。 ミニフィルターは、この構造体へのポインターを Registration パラメーターとして FltRegisterFilter に渡します。
要件
要件 | 値 |
---|---|
Header | fltkernel.h (Fltkernel.h を含む) |
こちらもご覧ください
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP