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

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

Синтаксис

NTSTATUS FLTAPI FltDeleteStreamContext(
  [in]  PFLT_INSTANCE Instance,
  [in]  PFILE_OBJECT  FileObject,
  [out] PFLT_CONTEXT  *OldContext
);

Параметры

[in] Instance

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

[in] FileObject

Указатель на объект файла для файлового потока.

[out] OldContext

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

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

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

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

Комментарии

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

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

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

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

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

Чтобы задать контекст потока, вызовите FltSetStreamContext.

Требования

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

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

FltAllocateContext

FltDeleteContext

FltGetStreamContext

FltReleaseContext

FltSetStreamContext