FltDeleteStreamContext 函数 (fltkernel.h)

FltDeleteStreamContext 删除给定微筛选器驱动程序实例为给定流设置的上下文,并标记要删除的上下文。

语法

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

参数

[in] Instance

微筛选器驱动程序实例的不透明实例指针,其上下文将从附加到文件流的上下文列表中删除。

[in] FileObject

指向文件流的文件对象的指针。

[out] OldContext

指向调用方分配的变量的指针,该变量接收已删除上下文的地址。 此参数是可选的,可以为 NULL。 如果 OldContext 不为 NULL 且未指向 NULL_CONTEXT,则调用方负责调用 FltReleaseContext 以在不再需要时释放此上下文。

返回值

FltDeleteStreamContext 返回STATUS_SUCCESS或相应的 NTSTATUS 值,例如以下值之一:

返回代码 说明
STATUS_FLT_DELETING_OBJECT 指定的 实例 正在被拆毁。 这是错误代码。
STATUS_NOT_FOUND 找不到匹配的上下文。 这是错误代码。
STATUS_NOT_SUPPORTED 文件系统不支持此文件流的每个流上下文。 这是错误代码。

注解

有关上下文的详细信息,请参阅 关于微筛选器上下文

由于上下文是引用计数的,因此微筛选器驱动程序通常不需要调用 FltDeleteStreamContext 等例程来显式删除上下文。

微筛选器驱动程序调用 FltDeleteStreamContext 以从文件流中删除上下文,并标记上下文以供删除。 上下文通常会立即释放,除非有未完成的引用 (例如,因为上下文仍在由另一个线程) 使用。

若要分配新上下文,请调用 FltAllocateContext

若要获取流上下文,请调用 FltGetStreamContext

若要设置流上下文,请调用 FltSetStreamContext

要求

要求
目标平台 通用
标头 fltkernel.h (包括 Fltkernel.h)
Library FltMgr.lib
IRQL <= APC_LEVEL

另请参阅

FltAllocateContext

FltDeleteContext

FltGetStreamContext

FltReleaseContext

FltSetStreamContext