FltDeleteTransactionContext 函数 (fltkernel.h)

FltDeleteTransactionContext 例程从给定事务中删除上下文,并标记要删除的上下文。

语法

NTSTATUS FLTAPI FltDeleteTransactionContext(
  [in]            PFLT_INSTANCE Instance,
  [in]            PKTRANSACTION Transaction,
  [out, optional] PFLT_CONTEXT  *OldContext
);

参数

[in] Instance

调用方不透明实例指针。

[in] Transaction

正在删除其上下文的事务的不透明事务指针。

[out, optional] OldContext

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

返回值

FltDeleteTransactionContext 返回STATUS_SUCCESS或相应的 NTSTATUS 值,如下所示:

返回代码 描述
STATUS_FLT_DELETING_OBJECT 指定的 实例 正在被拆毁。 这是一个错误代码。
STATUS_NOT_FOUND 找不到匹配的上下文。 这是一个错误代码。

言论

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

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

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

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

若要检索事务上下文,请调用 FltGetTransactionContext

若要设置事务上下文,请调用 FltSetTransactionContext

要求

要求 价值
最低支持的客户端 Windows Vista 及更高版本
目标平台 普遍
标头 fltkernel.h (包括 Fltkernel.h)
FltMgr.lib
IRQL <= APC_LEVEL

另请参阅

FltAllocateContext

FltDeleteContext

FltCommitComplete

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltPrepareComplete

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext