Функция FltRollbackComplete (fltkernel.h)

Подпрограмма FltRollbackComplete подтверждает уведомление TRANSACTION_NOTIFY_ROLLBACK.

Синтаксис

NTSTATUS FLTAPI FltRollbackComplete(
  [in]           PFLT_INSTANCE Instance,
  [in]           PKTRANSACTION Transaction,
  [in, optional] PFLT_CONTEXT  TransactionContext
);

Параметры

[in] Instance

Указатель непрозрачного экземпляра для вызывающего объекта.

[in] Transaction

Указатель непрозрачной транзакции для транзакции.

[in, optional] TransactionContext

Указатель на контекст транзакции драйвера мини-фильтра.

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

FltRollbackComplete возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например следующее:

Код возврата Описание
STATUS_NOT_FOUND
Драйвер минифильтра не задал контекст транзакции. Это код ошибки.

Комментарии

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

  • Подпрограмма TransactionNotificationCallback драйвера мини-фильтра выполняет необходимую обработку и возвращает STATUS_SUCCESS. В этом случае драйвер минифильтра не вызывает FltRollbackComplete.
  • Подпрограмма TransactionNotificationCallback драйвера мини-фильтра отправляет необходимую обработку в рабочий поток и возвращает STATUS_PENDING. После асинхронного выполнения обработки рабочая процедура драйвера минифильтра должна вызвать FltRollbackComplete , чтобы указать, что обработка завершена. Если рабочая процедура драйвера мини-фильтра не вызывает FltRollbackComplete, диспетчер транзакций ядра не может выполнить операцию отката или прерывания транзакции.
Чтобы зарегистрировать подпрограмму TransactionNotificationCallback , драйвер мини-фильтра сохраняет адрес подпрограммы типа PFLT_TRANSACTION_NOTIFICATION_CALLBACK в элементе TransactionNotificationCallbackструктуры FLT_REGISTRATION , которую драйвер мини-фильтра передает в качестве параметра Registrationдля FltRegisterFilter.

Чтобы завербовать транзакцию, вызовите Метод FltEnlistInTransaction.

Чтобы выделить новый контекст транзакции, вызовите FltAllocateContext.

Чтобы получить контекст транзакции, вызовите Метод FltGetTransactionContext.

Чтобы удалить контекст транзакции, вызовите Метод FltDeleteTransactionContext или FltDeleteContext.

Чтобы задать контекст транзакции, вызовите Метод FltSetTransactionContext.

Требования

Требование Значение
Минимальная версия клиента Эта процедура доступна в Windows Vista и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека Fltmgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

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

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK