функция обратного вызова 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, которую драйвер минифильтра передает в качестве параметра регистрации параметра FltRegisterFilter.

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

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

FltCommitComplete

FltPrepareComplete

FltPrePrepareComplete

FltRollbackComplete

Требования

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

См. также

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FltCommitComplete

FltPrePrepareComplete

FltPrepareComplete

FltRegisterFilter

FltRollbackComplete