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 例程 |
---|---|
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) |
库 | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |