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

若要确定给定文件是否支持文件上下文,请调用 FltSupportsFileContextsFltSupportsFileContextsEx

要求

要求 价值
最低支持的客户端 Windows Vista 及更高版本
目标平台 普遍
标头 fltkernel.h (包括 Fltkernel.h)
FltMgr.lib
IRQL <= APC_LEVEL

另请参阅

FLT_CONTEXT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltGetFileContext

FltReleaseContext

FltSetFileContext

FltSupportsFileContexts

FltSupportsFileContextsEx