mmFlushImageSection 函数 (ntifs.h)
MmFlushImageSection 例程刷新文件的 image 节。
语法
BOOLEAN MmFlushImageSection(
PSECTION_OBJECT_POINTERS SectionObjectPointer,
[in] MMFLUSH_TYPE FlushType
);
参数
SectionObjectPointer
指向结构的指针,该结构包含文件对象的节对象指针。
[in] FlushType
指定刷新操作的原因。 它可以是下表中列出的值之一。
FlushType 值 | 含义 |
---|---|
MmFlushForDelete | 正在删除该文件。 |
MmFlushForWrite | 正在打开文件进行写入访问。 |
返回值
如果刷新操作成功,或者文件不存在图像部分,则 MmFlushImageSection 返回 TRUE;否则,MmFlushImageSection 返回 FALSE。
注意 如果指定了 FlushType MmFlushForDelete 值,并且文件的数据节上存在一个或多个未完成的写入探测, 则 MmFlushImageSection 返回 FALSE。
注解
在删除文件或打开文件进行写入访问之前,文件系统必须调用 MmFlushImageSection 例程。
删除文件之前,文件系统应从其IRP_MJ_SET_INFORMATION或IRP_MJ_CLEANUP调度例程调用 MmFlushImageSection,为 FlushType 参数传递 MmFlushForDelete。
打开文件进行写入访问时,文件系统应从其IRP_MJ_CREATE调度例程调用 MmFlushImageSection,并传递 FlushType 参数的 MmFlushForWrite。
如果没有图像部分的映射视图, MmFlushImageSection 将销毁图像部分,并将所有已用页面返回到可用列表。
在使用 MmFlushImageSection 之前,强烈建议文件系统编写器研究在 FASTFAT 示例中使用此例程的方式。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |