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