FltDeleteContext 函数 (fltkernel.h)

FltDeleteContext 标记要删除的指定上下文。

语法

VOID FLTAPI FltDeleteContext(
  [in] PFLT_CONTEXT Context
);

参数

[in] Context

指向要删除的上下文的指针。 此参数是必需的,不能 NULL

返回值

没有。

言论

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

由于上下文是引用计数的,因此小型筛选器驱动程序通常不需要调用例程(如 FltDeleteContext)来显式删除上下文。

FltDeleteContext 标记要删除的上下文。 上下文通常在释放当前引用后立即释放,除非有一个未完成的引用(例如,因为上下文仍在由另一个线程使用)。

使用 FltDeleteContext时,应考虑以下项:

  • 当微型筛选器驱动程序调用 FltDeleteContext时,微型筛选器驱动程序必须已具有对上下文的引用。 但是,当微型筛选器驱动程序调用 FltDeleteStreamHandleContext时,FltDeleteStreamContextFltDeleteInstanceContext等,微型筛选器驱动程序不需要对上下文的引用。 微型筛选器驱动程序调用 FltDeleteContext后,对上下文的引用仍然有效。 微型筛选器驱动程序必须调用 FltReleaseContext 例程来释放对上下文的引用。

  • FltDeleteContext 从内部筛选器管理器结构中删除上下文。 然后,对获取上下文的函数(如 FltGetContextsFltGetInstanceContext)的进一步调用无法找到该上下文。 但是,在上下文的引用计数为 0 之前,不会释放上下文内存。

还可以通过调用下表中的相应删除上下文例程来删除上下文。

上下文类型 Delete-Context 例程
FLT_FILE_CONTEXT FltDeleteFileContext (仅 Windows Vista 及更高版本)。
FLT_INSTANCE_CONTEXT FltDeleteInstanceContext
FLT_SECTION_CONTEXT FltCloseSectionForDataScan(仅限 Windows 8 及更高版本)。
FLT_STREAM_CONTEXT FltDeleteStreamContext
FLT_STREAMHANDLE_CONTEXT FltDeleteStreamHandleContext
FLT_TRANSACTION_CONTEXT FltDeleteTransactionContext(仅限 Windows Vista 及更高版本)。
FLT_VOLUME_CONTEXT FltDeleteVolumeContext

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

若要递增上下文的引用计数,请调用 FltReferenceContext

若要递减上下文的引用计数,请调用 FltReleaseContext

不能使用 FltDeleteContext删除节上下文FLT_SECTION_CONTEXT类型。 请改用 FltReleaseContext 解除分配节上下文。

要求

要求 价值
目标平台 普遍
标头 fltkernel.h (包括 Fltkernel.h)
FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

另请参阅

FltAllocateContext

FltCloseSectionForDataScan

FltDeleteFileContext

FltDeleteInstanceContext

FltDeleteStreamContext

FltDeleteStreamHandleContext

FltDeleteTransactionContext

FltDeleteVolumeContext

FltReferenceContext

FltReleaseContext