FsRtlRemovePerFileObjectContext 関数 (ntifs.h)
"レガシ" ファイル システム フィルター ドライバーの場合、 FsRtlRemovePerFileObjectContext 関数は、ファイル オブジェクトに以前に関連付けられていたファイル オブジェクトごとのコンテキストの一覧から、ファイル オブジェクトごとのコンテキスト情報構造のリンクを解除します。
構文
PFSRTL_PER_FILEOBJECT_CONTEXT FsRtlRemovePerFileObjectContext(
[in] PFILE_OBJECT FileObject,
[in, optional] PVOID OwnerId,
[in, optional] PVOID InstanceId
);
パラメーター
[in] FileObject
コンテキスト情報を削除するファイル オブジェクトへのポインター。
[in, optional] OwnerId
ファイルオブジェクトごとのコンテキスト構造の所有フィルターを一意に識別する呼び出し元によって割り当てられた変数へのポインター。 この変数の形式は、フィルター ドライバー固有です。
[in, optional] InstanceId
呼び出し元によって割り当てられた変数へのポインター。同じフィルター ドライバーによって作成されたファイル オブジェクトごとのコンテキスト構造を区別するために使用できます。 この変数の形式は、フィルター ドライバー固有です。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
FsRtlRemovePerFileObjectContext はリンクを解除し、検出された最初の一致するファイル オブジェクトごとのコンテキストへのポインターを返します。 一致するものが見つからない場合、 FsRtlRemovePerFileObjectContext は NULL を返します。
注釈
"レガシ" ファイル システム フィルター ドライバーは 、FsRtlRemovePerFileObjectContext を呼び出して、ファイル オブジェクトに関連付けられているファイルごとのオブジェクトごとのコンテキストの一覧から独自のファイル オブジェクトごとのコンテキスト構造のリンクを解除します。 このようなコンテキスト構造はすべて、 FsRtlInsertPerFileObjectContext を呼び出すことによって、ファイル オブジェクトに以前に関連付けられている必要があります。
FsRtlRemovePerFileObjectContext の呼び出しが成功した場合、OwnerId (および存在する場合は InstanceId) に一致する最初のファイル オブジェクトごとのコンテキスト構造はリンク解除され、そのコンテキストへのポインターが返されます。 このポインターは、リンクされていないコンテキスト構造を解放するためにフィルター ドライバーによって使用できます。
初期化されたファイルオブジェクトごとのコンテキスト構造をファイル オブジェクトに関連付けるには、 FsRtlInsertPerFileObjectContext 関数を 使用します。
ファイル オブジェクトに関連付けられているファイル オブジェクトごとのコンテキスト構造を取得するには、 FsRtlLookupPerFileObjectContext 関数を使用します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
対象プラットフォーム | ユニバーサル |
Header | ntifs.h (Fltkernel.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= APC_LEVEL |