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