Поделиться через


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

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

Синтаксис

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

Параметры

[in] Instance

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

[in] Transaction

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

[in, optional] TransactionContext

Указатель на контекст драйвера мини-фильтра для транзакции. Этот параметр является необязательным и может иметь значение NULL.

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

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

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

Комментарии

Эта процедура доступна в Windows Vista и более поздних версиях.

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

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

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

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

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

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

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

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека Fltmgr.lib
IRQL PASSIVE_LEVEL

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

FLT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK