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

Подпрограмма FltDeleteTransactionContext удаляет контекст из заданной транзакции и помечает контекст для удаления.

Синтаксис

NTSTATUS FLTAPI FltDeleteTransactionContext(
  [in]            PFLT_INSTANCE Instance,
  [in]            PKTRANSACTION Transaction,
  [out, optional] PFLT_CONTEXT  *OldContext
);

Параметры

[in] Instance

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

[in] Transaction

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

[out, optional] OldContext

Указатель на переменную, выделенную вызывающим объектом, которая получает адрес удаленного контекста. Этот параметр является необязательным и может иметь значение NULL. Если значение OldContext не равно NULL и не указывает на NULL_CONTEXT, вызывающий объект отвечает за вызов FltReleaseContext , чтобы освободить этот контекст, когда он больше не нужен.

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

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

Код возврата Описание
STATUS_FLT_DELETING_OBJECT Указанный экземпляр будет снесен. Это код ошибки.
STATUS_NOT_FOUND Соответствующий контекст не найден. Это код ошибки.

Комментарии

Дополнительные сведения о контекстах см. в разделе Сведения о контекстах минифильтра.

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

Драйвер минифильтра вызывает FltDeleteTransactionContext , чтобы удалить контекст из транзакции и пометить контекст для удаления. Контекст, как правило, освобождается немедленно, если на него нет незавершенной ссылки (например, из-за того, что контекст по-прежнему используется другим потоком).

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

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

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

Требования

Требование Значение
Минимальная версия клиента Windows Vista и более поздние версии
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека FltMgr.lib
IRQL <= APC_LEVEL

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

FltAllocateContext

FltDeleteContext

FltCommitComplete

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltPrepareComplete

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext