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


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

См. также

FltAllocateContext

FltDeleteContext

FltGetStreamContext

FltReleaseContext

FltSetStreamContext