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 (包括 Fltkernel.h) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |