次の方法で共有


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

ミニフィルターが使用するコンテキストの種類ごとに 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 構造体によって提供されるなどの追加情報を取得できます。

ミニフィルター ドライバーは、NormalizeNameComponentCallbacknormalizeNameComponentExCallback メンバーの両方を同時に設定して 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 を含む)

関連項目

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