FLT_CONTEXT_REGISTRATION構造体 (fltkernel.h)
FLT_CONTEXT_REGISTRATION構造体は、コンテキスト型の登録に使用されます。
構文
typedef struct _FLT_CONTEXT_REGISTRATION {
FLT_CONTEXT_TYPE ContextType;
FLT_CONTEXT_REGISTRATION_FLAGS Flags;
PFLT_CONTEXT_CLEANUP_CALLBACK ContextCleanupCallback;
SIZE_T Size;
ULONG PoolTag;
PFLT_CONTEXT_ALLOCATE_CALLBACK ContextAllocateCallback;
PFLT_CONTEXT_FREE_CALLBACK ContextFreeCallback;
PVOID Reserved1;
} FLT_CONTEXT_REGISTRATION, *PFLT_CONTEXT_REGISTRATION;
メンバーズ
ContextType
コンテキストの種類。 このメンバーは必須であり、次のいずれかの値である必要があります。
FLT_FILE_CONTEXT (Windows Vista 以降のみ)。
FLT_INSTANCE_CONTEXT
FLT_STREAM_CONTEXT
FLT_STREAMHANDLE_CONTEXT
FLT_SECTION_CONTEXT (Windows 8 以降のみ)。
FLT_TRANSACTION_CONTEXT (Windows Vista 以降のみ)。
FLT_VOLUME_CONTEXT
Flags
フィルター マネージャーが固定サイズ コンテキストのルックアサイド リストから新しいコンテキストを割り当てる方法を指定するフラグのビットマスク。 このメンバーには、0 または次の値を指定できます。
旗 | 意味 |
---|---|
FLTFL_CONTEXT_REGISTRATION_NO_EXACT_SIZE_MATCH | ミニフィルターで固定サイズのコンテキストを使用し、このフラグが指定されている場合、フィルター マネージャーは、ルックアサイド リスト内のコンテキストのサイズが要求されたサイズ以上の場合に、ルックアサイド リストからコンテキストを割り当てます。 それ以外の場合、フィルター マネージャーは、ルックアサイド リスト内のコンテキストのサイズが要求されたサイズと等しい場合にのみ、ルックアサイド リストからコンテキストを割り当てます。 |
ContextCleanupCallback
PFLT_CONTEXT_CLEANUP_CALLBACK型のミニフィルター定義 ContextCleanupCallback ルーチンへのポインター。 フィルター マネージャーは、コンテキストを削除する直前にこのルーチンを呼び出します。 ミニフィルターにコンテキスト内でクリーンアップするメモリまたはポインターがない場合、このメンバーは省略可能であり、NULL できます。
Size
ミニフィルターが固定サイズのコンテキストを使用する場合の、コンテキストのミニフィルター定義部分のサイズ (バイト単位)。 ゼロは有効なサイズ値です。 ミニフィルターで可変サイズのコンテキストを使用する場合、このメンバーは必須であり、FLT_VARIABLE_SIZED_CONTEXTSに設定する必要があります。
PoolTag
コンテキストに使用するプール タグ値。 このタグは、1 ~ 4 個の 7 ビット ASCII 文字の文字列として指定され、発生したシステムのクラッシュ ダンプに表示されます。 ContextAllocateCallback メンバーが NULL 場合、このメンバーは必須であり、0 にすることはできません。
ContextAllocateCallback
PFLT_CONTEXT_ALLOCATE_CALLBACK型のミニフィルター定義 ContextAllocateCallback ルーチンへのポインター。 このメンバーは省略可能であり、NULL できます。 NULL でない場合、サイズの と PoolTag メンバー は無視されます。
ContextFreeCallback
PFLT_CONTEXT_FREE_CALLBACK型のミニフィルター定義 ContextFreeCallback ルーチンへのポインター。 このメンバーは省略可能であり、NULL できます。 NULL でない場合、サイズの と PoolTag メンバー は無視されます。
Reserved1
システム用に予約されています。 ミニフィルターは、このメンバーを NULL 設定する必要があります。
備考
ミニフィルターは、DriverEntry ルーチンから FltRegisterFilter を呼び出すときに、使用する各コンテキストの種類を登録する必要があります。
これらのコンテキスト型を登録するために、ミニフィルターはFLT_CONTEXT_REGISTRATION構造体の可変長配列を作成し、ミニフィルターが FltRegisterFilter の Registration パラメーターとして渡す FLT_REGISTRATION 構造体の ContextRegistration メンバーに配列へのポインター格納します。 この配列の最後の要素は {FLT_CONTEXT_END} である必要があります。
ミニフィルターが使用するコンテキストの種類ごとに、ミニフィルターは、次の規則に従って、少なくとも 1 つのFLT_CONTEXT_REGISTRATION構造体を指定する必要があります。
- ミニフィルターが、非NULL ContextAllocateCallback メンバーを持つFLT_CONTEXT_REGISTRATION構造体を提供する場合、そのコンテキスト型に追加のFLT_CONTEXT_REGISTRATION構造体を指定することはできません。
- ミニフィルターが 2 つ以上の同一のFLT_CONTEXT_REGISTRATION構造体を提供する場合は、最初の構造体のみが使用されます。 その他は無視されます。
- コンテキストの種類ごとに、FLT_VARIABLE_SIZED_CONTEXTSの Size メンバーを持つ 1 つのFLT_CONTEXT_REGISTRATION構造体のみを指定できます。
- コンテキストの種類ごとに、FLT_VARIABLE_SIZED_CONTEXTS以外の Size メンバーを持つ 3 つ以上のFLT_CONTEXT_REGISTRATION構造体を指定することはできません。
必要条件
要件 | 価値 |
---|---|
ヘッダー | fltkernel.h (Fltkernel.h を含む) |
関連項目
FltRegisterFilter の