Функция 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 |