次の方法で共有


FltDeleteFileContext 関数 (fltkernel.h)

FltDeleteFileContext ルーチンは、特定のミニフィルター ドライバーが特定のファイルに対して設定したファイル コンテキストを取得および削除します。

構文

NTSTATUS FLTAPI FltDeleteFileContext(
  [in]  PFLT_INSTANCE Instance,
  [in]  PFILE_OBJECT  FileObject,
  [out] PFLT_CONTEXT  *OldContext
);

パラメーター

[in] Instance

呼び出し元の不透明なインスタンス ポインター。 このパラメーターは必須であり、NULL することはできません。

[in] FileObject

ファイルのファイル オブジェクト ポインター。 このパラメーターは必須であり、NULL することはできません。

[out] OldContext

削除されたコンテキストのアドレスを受け取る呼び出し元によって割り当てられた変数へのポインター。 一致するコンテキストが見つからない場合、この変数はNULL_CONTEXTを受け取ります。 このパラメーターは省略可能であり、NULL できます。 このパラメーターの詳細については、次の「解説」セクションを参照してください。

戻り値

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

リターン コード 形容
STATUS_NOT_FOUND 一致するコンテキストが見つかりませんでした。 これはエラー コードです。
STATUS_NOT_SUPPORTED このファイルでは、ファイル コンテキストはサポートされていません。 これはエラー コードです。

備考

コンテキストの詳細については、「ミニフィルター コンテキストについて」を参照してください。

コンテキストは参照カウントされるため、通常は、ミニフィルター ドライバーが fltDeleteFileContext や FltDeleteContextなどのルーチンを呼び出して、コンテキストを明示的に削除する必要はありません。

ミニフィルター ドライバーは、FltDeleteFileContext を呼び出して、FltSetFileContext呼び出して、以前にファイルに対して設定したファイル コンテキストを取得および削除します。

OldContext パラメーターが入力時に NULL 、一致するファイル コンテキストが見つかった場合、fltDeleteFileContext 、ミニフィルター ドライバーの以前の FltSetFileContextへの呼び出しによって追加された参照解放されます。 通常、削除されたコンテキストは、未処理の参照がない限りすぐに解放されます (たとえば、コンテキストがまだ別のスレッドで使用されているため)。

OldContext パラメーターが NULL されず、一致するファイル コンテキストが見つかり、返された場合、呼び出し元は FltSetFileContextによって追加された参照解放します。 この参照を解放するには、ミニフィルター ドライバーは、必要なクリーンアップ 実行した後、できるだけ早く削除されたファイル コンテキストに対して FltReleaseContext を呼び出す必要があります。

新しいコンテキストを割り当てるには、FltAllocateContext呼び出します。

特定のファイルに対してファイル コンテキストがサポートされているかどうかを確認するには、FltSupportsFileContexts呼び出すか、FltSupportsFileContextsEx呼び出します。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
ライブラリ FltMgr.lib
IRQL <= APC_LEVEL

関連項目

FLT_CONTEXT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltGetFileContext

FltReleaseContext

FltSetFileContext

FltSupportsFileContexts

FltSupportsFileContextsEx