PFLT_TRANSACTION_NOTIFICATION_CALLBACK回调函数 (fltkernel.h)
微筛选器驱动程序可以将 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 类型的例程注册为其 TransactionNotificationCallback 例程。
语法
PFLT_TRANSACTION_NOTIFICATION_CALLBACK PfltTransactionNotificationCallback;
NTSTATUS PfltTransactionNotificationCallback(
[in] PCFLT_RELATED_OBJECTS FltObjects,
[in] PFLT_CONTEXT TransactionContext,
[in] ULONG NotificationMask
)
{...}
参数
[in] FltObjects
指向 FLT_RELATED_OBJECTS 结构的指针,该结构包含与当前操作相关的对象的不透明指针。
[in] TransactionContext
指向微筛选器驱动程序的事务上下文的指针。
[in] NotificationMask
将筛选器管理器发送到微筛选器驱动程序的通知类型指定为以下值之一。
值 | 含义 |
---|---|
TRANSACTION_NOTIFY_COMMIT | 提交事务时发送此通知。 |
TRANSACTION_NOTIFY_COMMIT_FINALIZE | 对于 Windows Vista SP1 及更高版本,当事务完全提交 (即与事务关联的所有 资源管理器 (如 TxF)已提交) 时,将发送此通知。 |
TRANSACTION_NOTIFY_PREPARE | 当事务进入准备提交阶段时,将发送此通知。 |
TRANSACTION_NOTIFY_PREPREPARE | 当事务进入预准备提交阶段时,将发送此通知。 |
TRANSACTION_NOTIFY_ROLLBACK | 当回滚或中止事务时,将发送此通知。 |
返回值
PFLT_TRANSACTION_NOTIFICATION_CALLBACK例程返回以下 NTSTATUS 值之一:
返回代码 | 说明 |
---|---|
|
返回此状态值指示微筛选器驱动程序已完成事务。 这是一个成功代码。 |
|
返回此状态值表示微筛选器驱动程序尚未完成事务。 这是一个成功代码。 |
注解
当微筛选器驱动程序通过从其 DriverEntry 例程调用 FltRegisterFilter 来注册自身时,它可以将 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 类型的例程注册为微筛选器的 TransactionNotificationCallback 例程。
为了注册 TransactionNotificationCallback 例程,微筛选器驱动程序将类型为 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 的例程的地址存储在FLT_REGISTRATION 结构的 TransactionNotificationCallback 成员中,微筛选器驱动程序作为 FltRegisterFilter 的 Registration 参数传递该成员。
筛选器管理器调用此例程来通知微筛选器驱动程序有关微筛选器驱动程序登记的事务的状态。
如果微筛选器驱动程序从此回调例程返回STATUS_PENDING,它最终必须调用以下例程之一,以指示它已完成处理通知:
要求
要求 | 值 |
---|---|
最低受支持的客户端 | PFLT_TRANSACTION_NOTIFICATION_CALLBACK例程在 Windows Vista 及更高版本上可用。 |
目标平台 | 桌面 |
标头 | fltkernel.h (包括 Fltkernel.h) |
IRQL | PASSIVE_LEVEL |