跟踪旧文件系统筛选器驱动程序中的按文件上下文

注意

为了获得最佳可靠性和性能,请使用支持筛选器管理器的 文件系统微筛选器驱动程序 ,而不是旧的文件系统筛选器驱动程序。 若要将旧驱动程序移植到微筛选器驱动程序,请参阅 移植旧版筛选器驱动程序指南

旧文件系统筛选器驱动程序可以通过将 FSRTL_PER_FILE_CONTEXT 对象与用户定义的上下文信息结构相关联来记录文件的上下文信息。

注意

并非所有文件系统都支持每个文件上下文对象。 若要了解文件是否与支持它们的文件系统相关联,请使用 FsRtlSupportsPerFileContexts 宏。

使用 FsRtlInitPerFileContext 宏初始化 FSRTL_PER_FILE_CONTEXT 对象。 然后使用 FsRtlInsertPerFileContext 例程将文件与任意上下文对象相关联。

使用 FsRtlGetPerFileContextPointer 宏获取文件系统运行时库 (FSRTL) 包用于跟踪文件上下文的指针。

筛选器驱动程序可以使用 FsRtlLookupPerFileContext 例程查找与文件关联的文件上下文对象。 例程可以指定结构的所有者或结构的实例以缩小搜索范围。

筛选器驱动程序可以使用 FsRtlRemovePerFileContext 删除上下文对象。 例程可以指定结构的所有者或结构的实例以缩小搜索范围。

注意

仅使用 FsRtlRemovePerFileContext 例程在文件仍处于打开状态时删除上下文对象。 不要将其与 FsRtlTeardownPerFileContexts 混淆。

文件系统调用 FsRtlTeardownPerFileContexts 以释放仍与每个文件控制块结构关联的任何筛选器上下文, (FCB) 它们正在拆解。 FsRtlTeardownPerFileContexts 例程调用在每个筛选器上下文的 FSRTL_PER_FILE_CONTEXT 对象中指定的 FreeCallback 例程。