次の方法で共有


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 つが無効な値に設定されました。 GenerateFileNameCallbackNormalizeNameComponentCallback、および NormalizeNameComponentExCallback メンバー FLT_REGISTRATION 名前プロバイダー ルーチンを指します。
STATUS_INVALID_PARAMETERはエラー コードです。
STATUS_FLT_NOT_INITIALIZED
フィルター マネージャーは、フィルターが登録しようとしたときに初期化されませんでした。 フィルター マネージャーがドライバーとして読み込まれていることを確認します。 これはエラー コードです。
STATUS_OBJECT_NAME_NOT_FOUND
フィルター サービス キーがレジストリに見つかりません。

-又は-

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

備考

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

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

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

ミニフィルター ドライバーは、別のミニフィルター ドライバーではなく、FltRegisterFilter を呼び出して自身を登録することしかできません。

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

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
ライブラリ FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

関連項目

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter