Функция FltGetStreamHandleContext (fltkernel.h)
Подпрограмма fltGetStreamHandleContext извлекает контекст, заданный для дескриптора потока экземпляром драйвера минифильтратора.
Синтаксис
NTSTATUS FLTAPI FltGetStreamHandleContext(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject,
[out] PFLT_CONTEXT *Context
);
Параметры
[in] Instance
Указатель непрозрачного экземпляра для экземпляра драйвера мини-фильтра, контекст которого требуется извлечь.
[in] FileObject
Указатель на объект файла для дескриптора потока.
[out] Context
Указатель на выделенную вызывающим переменную, которая получает адрес контекста. Этот параметр не может иметь значение NULL.
Возвращаемое значение
FltGetStreamHandleContext возвращает STATUS_SUCCESS, когда он успешно возвращает запрошенный контекст. В противном случае возвращает соответствующее значение NTSTATUS, например одно из следующих:
Возвращаемый код | Описание |
---|---|
STATUS_NOT_FOUND | В настоящее время в этом файле не найден соответствующий контекст, поэтому FltMgr задать контексту значение NULL_CONTEXT. Это код ошибки. |
STATUS_NOT_SUPPORTED | Файловая система не поддерживает контексты для каждого потока для этого потока. Это код ошибки. |
Замечания
Дополнительные сведения о контекстах см. в разделе О контекстах минифильтра.
FltGetStreamHandleContext извлекает контекст, заданный для дескриптора потока заданным драйвером минифильтра.
FltGetStreamHandleContext увеличивает количество ссылок в контексте, на который указывает параметр Context. Если этот указатель контекста больше не нужен, вызывающий объект должен уменьшать количество ссылок путем вызова FltReleaseContext. Таким образом, каждый успешный вызов FltGetStreamHandleContext должен соответствовать последующему вызову FltReleaseContext.
Чтобы задать контекст для дескриптора потока, вызовите FltSetStreamHandleContext
Чтобы выделить новый контекст, вызовите FltAllocateContext.
Чтобы удалить контекст дескриптора потока, вызовите FltDeleteStreamHandleContext или FltDeleteContext.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | fltkernel.h (include Fltkernel.h) |
библиотеки | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |