次の方法で共有


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 ファイル コンテキストは、このファイルではサポートされていません。 これはエラー コードです。

注釈

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

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

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

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

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

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

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

要件

要件
サポートされている最小のクライアント Windows Vista 以降にのみ適用される
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
IRQL <= APC_LEVEL

こちらもご覧ください

FLT_CONTEXT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltGetFileContext

FltReleaseContext

FltSetFileContext

FltSupportsFileContexts

FltSupportsFileContextsEx