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。 如果 OldContextNULL 且不指向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)
FltMgr.lib
IRQL <= APC_LEVEL

另请参阅

FltAllocateContext

FltDeleteContext

FltGetStreamContext

FltReleaseContext

FltSetStreamContext