FltDeleteContext 函数 (fltkernel.h)
FltDeleteContext 标记要删除的指定上下文。
语法
VOID FLTAPI FltDeleteContext(
[in] PFLT_CONTEXT Context
);
参数
[in] Context
指向要删除的上下文的指针。 此参数是必需的,不能为 NULL。
返回值
无。
备注
有关上下文的详细信息,请参阅 关于微筛选器上下文。
由于上下文是引用计数的,因此微筛选器驱动程序通常不需要调用例程(如 FltDeleteContext)来显式删除上下文。
FltDeleteContext 标记要删除的上下文。 上下文通常在释放当前引用后立即释放,除非它 (存在未完成的引用,例如,因为另一个线程) 仍在使用该上下文。
使用 FltDeleteContext 时,应考虑以下各项:
当微筛选器驱动程序调用 FltDeleteContext 时,微筛选器驱动程序必须已具有对上下文的引用。 但是,当微筛选器驱动程序调用 FltDeleteStreamHandleContext、 FltDeleteStreamContext、 FltDeleteInstanceContext 等时,微筛选器驱动程序不需要对上下文的引用。 在微筛选器驱动程序调用 FltDeleteContext 后,该对上下文的引用仍然有效。 微筛选器驱动程序必须调用 FltReleaseContext 例程来释放对上下文的引用。
FltDeleteContext 从内部筛选器管理器结构中删除上下文。 然后,对获取上下文的函数(如 FltGetContexts 和 FltGetInstanceContext)的进一步调用无法找到该上下文。 但是,在上下文的引用计数为 0 之前,不会释放上下文内存。
还可以通过调用下表中的相应 delete-context 例程来删除上下文。
上下文类型 | Delete-Context 例程 |
---|---|
FLT_FILE_CONTEXT | FltDeleteFileContext (Windows Vista 及更高版本。) |
FLT_INSTANCE_CONTEXT | FltDeleteInstanceContext |
FLT_SECTION_CONTEXT | FltCloseSectionForDataScan (Windows 8 及更高版本。) |
FLT_STREAM_CONTEXT | FltDeleteStreamContext |
FLT_STREAMHANDLE_CONTEXT | FltDeleteStreamHandleContext |
FLT_TRANSACTION_CONTEXT | FltDeleteTransactionContext 仅 (Windows Vista 及更高版本。) |
FLT_VOLUME_CONTEXT | FltDeleteVolumeContext |
若要分配新上下文,请调用 FltAllocateContext。
若要递增上下文上的引用计数,请调用 FltReferenceContext。
若要递减上下文上的引用计数,请调用 FltReleaseContext。
不得使用 FltDeleteContext 删除FLT_SECTION_CONTEXT类型的节上下文。 请改用 FltReleaseContext 解除分配节上下文。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | fltkernel.h (包括 Fltkernel.h) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |