MmDoesFileHaveUserWritableReferences 函数 (ntifs.h)
MmDoesFileHaveUserWritableReferences 函数返回文件对象的可写引用数。
语法
ULONG MmDoesFileHaveUserWritableReferences(
[in] PSECTION_OBJECT_POINTERS SectionPointer
);
参数
[in] SectionPointer
指向包含文件对象的节对象指针 的SECTION_OBJECT_POINTERS 结构的指针。 此参数是必需的,不能为 NULL。
返回值
MmDoesFileHaveUserWritableReferences 返回与 SectionPointer 参数关联的文件对象的可写引用数。
注解
MmDoesFileHaveUserWritableReferences 返回与 SectionPointer 参数关联的文件对象的可写引用数。 此返回值是以下数字的总和:
关联文件对象的可写文件句柄数。
关联文件对象的可写节数。
关联文件对象的可写视图数。
未完成的 MDL 数,这些 MDL是关联文件对象的映射区域。
对于事务文件系统,可以使用此函数来确定给定事务是否引用了可更改的文件对象。 如果是这样,则必须回滚事务,因为无法保证 原子性 。
在调用 MmDoesFileHaveUserWritableReferences 之前,事务文件系统必须检查并截获指定写入访问权限的文件对象的创建。 具体而言,在启动事务之前,事务文件系统必须确保事务中给定文件当前不存在任何可写文件对象。 当事务正在进行时,事务文件系统必须使创建具有事务处理文件写入访问权限的文件对象的请求失败。
注意
即使文件对象的所有文件句柄和节句柄都已关闭,此函数也可用于检测文件对象是否存在可写视图。
有关事务的详细信息,请参阅 内核事务管理器。
有关文件对象的详细信息,请参阅 FILE_OBJECT。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
目标平台 | 通用 |
标头 | ntifs.h (包括 Fltkernel.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) |