функция обратного вызова 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 с пакетом обновления 1 (SP1) и более поздних версий это уведомление отправляется, когда транзакция полностью зафиксирована (т. е. когда все связанные с транзакцией диспетчеры ресурсов , например TxF, зафиксированы).
TRANSACTION_NOTIFY_PREPARE Это уведомление отправляется, когда транзакция переходит на этап подготовки к фиксации.
TRANSACTION_NOTIFY_PREPREPARE Это уведомление отправляется, когда транзакция переходит на этап предварительной подготовки к фиксации.
TRANSACTION_NOTIFY_ROLLBACK Это уведомление отправляется при откате или прерывании транзакции.

Возвращаемое значение

Подпрограмма PFLT_TRANSACTION_NOTIFICATION_CALLBACK возвращает одно из следующих значений NTSTATUS:

Код возврата Описание
STATUS_SUCCESS
Возврат этого значения состояния означает, что драйвер минифильтра завершен с транзакцией. Это код успешного выполнения.
STATUS_PENDING
Возврат этого значения состояния означает, что драйвер минифильтра еще не завершил транзакцию. Это код успешного выполнения.

Комментарии

Когда драйвер минифильтра регистрирует себя путем вызова FltRegisterFilter из своей подпрограммы DriverEntry , он может зарегистрировать подпрограмму типа PFLT_TRANSACTION_NOTIFICATION_CALLBACK в качестве подпрограммы TransactionNotificationCallback минифильтра.

Чтобы зарегистрировать подпрограмму TransactionNotificationCallback , драйвер минифильтра сохраняет адрес подпрограммы типа PFLT_TRANSACTION_NOTIFICATION_CALLBACK в элементе TransactionNotificationCallbackструктуры FLT_REGISTRATION , которую драйвер минифильтра передает в качестве параметра Registrationпараметра FltRegisterFilter.

Диспетчер фильтров вызывает эту подпрограмму, чтобы уведомить драйвер минифильтра о состоянии транзакции, в которую включен драйвер минифильтра.

Если драйвер минифильтра возвращает STATUS_PENDING из этой процедуры обратного вызова, он должен в конечном итоге вызвать одну из следующих процедур, чтобы указать, что обработка уведомления завершена:

FltCommitComplete

FltPrepareComplete

FltPrepareComplete

FltRollbackComplete

Требования

Требование Значение
Минимальная версия клиента Подпрограмма PFLT_TRANSACTION_NOTIFICATION_CALLBACK доступна в Windows Vista и более поздних версиях.
Целевая платформа Персональный компьютер
Верхняя часть fltkernel.h (включая Fltkernel.h)
IRQL PASSIVE_LEVEL

См. также раздел

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FltCommitComplete

FltPrepareComplete

FltPrepareComplete

FltRegisterFilter

FltRollbackComplete