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类型的例程的地址存储在 TransactionNotificationCallbackFLT_REGISTRATION 结构的成员中,微型筛选器驱动程序作为 注册 参数 FltRegisterFilter。
筛选器管理器调用此例程,以通知微型筛选器驱动程序登记的事务的状态。
如果微型筛选器驱动程序从此回调例程返回STATUS_PENDING,则它最终必须调用以下例程之一,以指示它已完成处理通知:
要求
要求 | 价值 |
---|---|
最低支持的客户端 | PFLT_TRANSACTION_NOTIFICATION_CALLBACK例程在 Windows Vista 及更高版本上可用。 |
目标平台 | 桌面 |
标头 | fltkernel.h (包括 Fltkernel.h) |
IRQL | PASSIVE_LEVEL |