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) |
Library | FltMgr.lib |
IRQL | <= APC_LEVEL |