FltPrepareComplete 函数 (fltkernel.h)
FltPrepareComplete 例程确认TRANSACTION_NOTIFY_PREPARE通知。
语法
NTSTATUS FLTAPI FltPrepareComplete(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in, optional] PFLT_CONTEXT TransactionContext
);
参数
[in] Instance
调用方不透明的实例指针。
[in] Transaction
事务的不透明事务指针。
[in, optional] TransactionContext
指向微筛选器驱动程序的事务上下文的指针。
返回值
FltPrepareComplete 返回STATUS_SUCCESS或相应的 NTSTATUS 值,如下所示:
返回代码 | 说明 |
---|---|
|
微筛选器驱动程序未在事务上设置上下文。 这是错误代码。 |
注解
事务进入准备提交阶段时,在事务中登记的微筛选器驱动程序可以收到TRANSACTION_NOTIFY_PREPARE通知。 若要将通知发送到微筛选器驱动程序,筛选器管理器调用微筛选器驱动程序的 TransactionNotificationCallback 例程。 微筛选器驱动程序通过以下两种方式之一确认此通知:
- 微筛选器驱动程序的 TransactionNotificationCallback 例程执行任何所需的处理并返回STATUS_SUCCESS。 在这种情况下,微筛选器驱动程序不调用 FltPrepareComplete。
- 微筛选器驱动程序的 TransactionNotificationCallback 例程将任何所需的处理发布到工作线程,并返回STATUS_PENDING。 异步执行处理后,微筛选器驱动程序的工作例程必须调用 FltPrepareComplete 以指示它已完成此处理。 如果微筛选器驱动程序的工作例程不调用 FltPrepareComplete,则内核事务管理器无法完成事务准备操作。
若要在事务中登记,请调用 FltEnlistInTransaction。
若要分配新的事务上下文,请调用 FltAllocateContext。
若要检索事务上下文,请调用 FltGetTransactionContext。
若要删除事务上下文,请调用 FltDeleteTransactionContext 或 FltDeleteContext。
若要设置事务上下文,请调用 FltSetTransactionContext。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | FltPrepareComplete 例程在 Windows Vista 及更高版本上可用。 |
目标平台 | 通用 |
标头 | fltkernel.h (包括 Fltkernel.h) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |