FsRtlRemovePerFileContext 函数 (ntifs.h)

FsRtlRemovePerFileContext 例程返回指向与文件关联的 FSRTL_PER_FILE_CONTEXT 对象的指针。 FsRtlRemovePerFileContext 从其占用的列表中删除 FSRTL_PER_FILE_CONTEXT 对象,以及关联的驱动程序特定上下文信息。

语法

PFSRTL_PER_FILE_CONTEXT FsRtlRemovePerFileContext(
  [in]           PVOID *PerFileContextPointer,
  [in, optional] PVOID OwnerId,
  [in, optional] PVOID InstanceId
);

参数

[in] PerFileContextPointer

指向文件系统运行时库 (FSRTL) 包用于跟踪文件上下文的不透明指针的指针。 若要从文件对象获取此指针,请使用 FsRtlGetPerFileContextPointer 宏。

[in, optional] OwnerId

指向筛选器驱动程序分配的变量的指针,该变量唯一标识每个文件上下文结构的所有者。 此参数是可选的,但如果 InstanceId 为非 NULL,则必须为非 NULL。

[in, optional] InstanceId

指向筛选器驱动程序分配的变量的指针,该变量可用于区分由同一筛选器驱动程序创建的每个文件上下文结构。 此参数可选。

返回值

指向与 OwnerId 和 InstanceId 匹配的第一个FSRTL_PER_FILE_CONTEXT(如果指定)指针。 如果未找到匹配项,或者系统不支持每个文件上下文信息,则此例程返回 NULL。

注解

FsRtlRemovePerFileContext 仅删除它找到的第一个匹配的每文件上下文结构。 如果每个文件都有其他匹配的上下文,筛选器驱动程序必须根据需要多次调用 FsRtlRemovePerFileContext ,以将其全部删除。

删除 FSRTL_PER_FILE_CONTEXT 后,文件系统筛选器驱动程序必须释放用于此上下文信息的内存。

仅当驱动程序必须在文件仍处于打开状态时放弃每个文件的上下文信息时,才对驱动程序使用此例程来删除上下文。 使用 FsRtlTeardownPerFileContexts 关闭文件时,将删除上下文。

请勿在 FreeCallback 例程中使用此例程。 文件系统在调用该例程之前从列表中删除上下文。

请勿在 IRP_CLOSE 处理程序中使用此例程。 流被拆毁时,不会通知你。

要求

要求
最低受支持的客户端 Windows Vista
目标平台 通用
标头 ntifs.h (包括 FltKernel.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

另请参阅

FSRTL_PER_FILE_CONTEXT

FsRtlGetPerFileContextPointer

FsRtlInsertPerFileContext

FsRtlLookupPerFileContext

跟踪旧版文件系统筛选器驱动程序中的 Per-File 上下文