MmDoesFileHaveUserWritableReferences 函数 (ntifs.h)

MmDoesFileHaveUserWritableReferences 函数确定与事务关联的文件是否具有任何用户映射的节。

语法

ULONG MmDoesFileHaveUserWritableReferences(
  [in] PSECTION_OBJECT_POINTERS SectionPointer
);

参数

[in] SectionPointer

指向包含文件对象的节对象指针的 SECTION_OBJECT_POINTERS 结构的指针。 此参数是必需的,不能 NULL

返回值

mmDoesFileHaveUserWritableReferences 返回以下值之一。

返回值 意义
0 文件对象没有用户映射的节。 可以安全地继续处理事务。
1 文件对象具有用户映射的节。 必须回滚事务。

言论

对于事务文件系统,可以使用此函数来确定给定事务是否引用了可更改的文件对象。 如果是这样,则必须回滚事务,因为无法保证 原子性

在调用 mmDoesFileHaveUserWritableReferences之前,事务文件系统必须检查和截获指定写入访问权限的文件对象的创建。 具体而言,在启动事务之前,事务文件系统必须确保事务中给定文件当前不存在可写文件对象。 事务正在进行时,事务文件系统必须失败请求才能创建具有事务处理文件写入访问权限的文件对象。

此函数可用于检测文件对象是否存在可写视图,即使文件对象的所有文件句柄和节句柄都已关闭。

有关事务的详细信息,请参阅 内核事务管理器

有关文件对象的详细信息,请参阅 FILE_OBJECT

要求

要求 价值
最低支持的客户端 Windows Vista
目标平台 普遍
标头 ntifs.h (包括 Fltkernel.h、 Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
DDI 符合性规则 HwStorPortProhibitedDIS(storport)

另请参阅

FILE_OBJECT

SECTION_OBJECT_POINTERS