ZwFlushBuffersFile 函数 (ntifs.h)

文件系统筛选器驱动程序调用 ZwFlushBuffersFile 例程,以将指定文件的刷新请求发送到文件系统。

语法

NTSYSAPI NTSTATUS ZwFlushBuffersFile(
  [in]  HANDLE           FileHandle,
  [out] PIO_STATUS_BLOCK IoStatusBlock
);

参数

[in] FileHandle

ZwCreateFileZwOpenFile 为要刷新其缓冲区的文件返回的句柄。 此参数是必需的,不能为 NULL

[out] IoStatusBlock

调用方 I/O 状态块的地址。 此参数是必需的,不能为 NULL

返回值

ZwFlushBuffersFile 返回STATUS_SUCCESS或相应的 NTSTATUS 值,例如以下值之一:

返回代码 说明
STATUS_MEDIA_WRITE_PROTECTED
文件驻留在受写保护的卷上;这是错误代码。
STATUS_VOLUME_DISMOUNTED
文件驻留在当前未装载的卷上;这是错误代码。

注解

文件系统筛选器驱动程序可以调用 ZwFlushBuffersFile ,向文件系统发出 给定文件的IRP_MJ_FLUSH_BUFFERS 请求。 刷新操作是同步的。

微筛选器驱动程序应调用 FltFlushBuffers ,而不是调用 ZwFlushBuffersFile

ZwFlushBuffersFile 的调用方必须在 IRQL = PASSIVE_LEVEL 运行,并且启用了特殊内核 APC

注意 如果在用户模式下调用 ZwFlushBuffersFile 函数,则应使用名称“NtFlushBuffersFile”而不是“ZwFlushBuffersFile”。
 
对于来自内核模式驱动程序的调用,Windows 本机系统服务例程的 **Nt*Xxx*** 和 **Zw*Xxx*** 版本在处理和解释输入参数的方式上的行为可能会有所不同。 有关例程的 **Nt*Xxx*** 和 **Zw*Xxx*** 版本之间的关系的详细信息,请参阅 [使用本机系统服务例程的 Nt 和 Zw 版本] (/windows-hardware/drivers/kernel/using-nt-and-zw-versions-of-native-system-services-routines) 。

要求

要求
最低受支持的客户端 Windows Vista
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (请参阅备注部分)
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)

另请参阅

FltFlushBuffers

IRP_MJ_FLUSH_BUFFERS

使用本机系统服务例程的 Nt 和 Zw 版本

ZwCreateFile

ZwOpenFile