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) コールバック ルーチンなどのファイル システム ミニフィルターに関する情報をフィルター マネージャーに提供するために使用されます。 ミニフィルターは、FltRegisterFilter をする Registration パラメーターとして、この構造体へのポインターを渡します。
必要条件
| 要件 | 価値 |
|---|---|
| ヘッダー | fltkernel.h (Fltkernel.h を含む) |
関連項目
FltRegisterFilter の
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP