FltDeleteContext 函数 (fltkernel.h)

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

语法

VOID FLTAPI FltDeleteContext(
  [in] PFLT_CONTEXT Context
);

参数

[in] Context

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

返回值

无。

备注

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

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

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

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

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

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

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

上下文类型 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)
Library FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

另请参阅

FltAllocateContext

FltCloseSectionForDataScan

FltDeleteFileContext

FltDeleteInstanceContext

FltDeleteStreamContext

FltDeleteStreamHandleContext

FltDeleteTransactionContext

FltDeleteVolumeContext

FltReferenceContext

FltReleaseContext