次の方法で共有


FltRegisterFilter 関数 (fltkernel.h)

FltRegisterFilter はミニフィルター ドライバーを登録します。

構文

NTSTATUS FLTAPI FltRegisterFilter(
  [in]  PDRIVER_OBJECT         Driver,
  [in]  const FLT_REGISTRATION *Registration,
  [out] PFLT_FILTER            *RetFilter
);

パラメーター

[in] Driver

ミニフィルター ドライバーのドライバー オブジェクトへのポインター。 これは、ミニフィルター ドライバーの DriverEntry ルーチンへの入力として渡されたのと同じドライバー オブジェクト ポインターである必要があります。

[in] Registration

呼び出し元によって割り当てられたミニフィルター ドライバー登録構造体へのポインター (FLT_REGISTRATION)。

[out] RetFilter

呼び出し元の不透明なフィルター ポインターを受け取る呼び出し元によって割り当てられた変数へのポインター。

戻り値

FltRegisterFilter は 、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_INSUFFICIENT_RESOURCES
FltRegisterFilter で プールの割り当てエラーが発生しました。 これはエラー コードです。
STATUS_INVALID_PARAMETER
次のいずれか:
  • Registration 構造体の Version メンバーが FLT_REGISTRATION_VERSION に設定されていません。
  • Registration 構造体の NULL 以外の名前プロバイダー ルーチンの 1 つが無効な値に設定されました。 FLT_REGISTRATIONGenerateFileNameCallbackNormalizeNameComponentCallbackNormalizeNameComponentExCallback の各メンバーは、名前プロバイダー ルーチンを指します。
STATUS_INVALID_PARAMETERはエラー コードです。
STATUS_FLT_NOT_INITIALIZED
フィルター マネージャーは、フィルターが登録しようとしたときに初期化されませんでした。 フィルター マネージャーがドライバーとして読み込まれていることを確認します。 これはエラー コードです。
STATUS_OBJECT_NAME_NOT_FOUND
フィルター サービス キーがレジストリに見つかりません。

または

フィルター インスタンスが登録されていません。

注釈

すべてのミニフィルター ドライバーは、その DriverEntry ルーチンから FltRegisterFilter を呼び出して、登録されているミニフィルター ドライバーのグローバル リストに追加し、フィルター マネージャーにコールバック関数の一覧とミニフィルター ドライバーに関するその他の情報を提供する必要があります。

FltRegisterFilter は 、*RetFilter のミニフィルター ドライバーの不透明なフィルター ポインターを返します。 このポインター値は、ミニフィルター ドライバーを一意に識別し、ミニフィルター ドライバーが読み込まれている限り一定のままになります。 ミニフィルター ドライバーは、 FltStartFilteringFltUnregisterFilter に必要なパラメーターであるため、このポインターを保存する必要があります。

FltRegisterFilter を呼び出した後、ミニフィルター ドライバーは通常、FltStartFiltering を呼び出して I/O 操作のフィルター処理を開始します。

ミニフィルター ドライバーは、 FltRegisterFilter を呼び出してそれ自体を登録することしかでき、別のミニフィルター ドライバーを呼び出す必要はありません。

それ自体の登録を解除するために、ミニフィルター ドライバーは FltUnregisterFilter.. を呼び出します。

要件

要件
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
[DLL] Fltmgr.sys
IRQL <= APC_LEVEL

こちらもご覧ください

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter