次の方法で共有


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 構造体によって提供されるなどの追加情報を取得できます。

ミニフィルター ドライバーは、 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 を含む)

こちらもご覧ください

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