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

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

Синтаксис

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

Параметры

[in] Instance

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

[in] FileObject

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

[out] OldContext

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

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

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

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

Комментарии

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

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

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

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

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

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

Требования

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

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

FltAllocateContext

FltDeleteContext

FltGetStreamHandleContext

FltReleaseContext

FltSetStreamHandleContext