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


Функция 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 (include Fltkernel.h)
библиотеки FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

См. также

FltAllocateContext

FltDeleteContext

FltGetStreamHandleContext

FltReleaseContext

FltSetStreamHandleContext