ZwFlushBuffersFileEx 函数 (ntifs.h)
ZwFlushBuffersFileEx 例程由文件系统筛选器驱动程序调用,以向文件系统发送给定文件的刷新请求。 可以设置可选的刷新操作标志来控制如何将文件数据写入存储。
语法
NTSYSAPI NTSTATUS ZwFlushBuffersFileEx(
[in] HANDLE FileHandle,
ULONG FLags,
PVOID Parameters,
ULONG ParametersSize,
[out] PIO_STATUS_BLOCK IoStatusBlock
);
参数
[in] FileHandle
ZwCreateFile 或 ZwOpenFile 刷新其缓冲区的文件返回的句柄。 此参数是必需的,不能 NULL。
FLags
刷新操作标志。 标志 可以是 0 或以下值之一。
价值 | 意义 |
---|---|
|
如果该文件位于 NTFS 文件系统上,则会写入文件缓存中的文件数据。 不会写入任何元数据,基础存储不会同步以刷新其缓存。 此标志对卷句柄无效。 |
|
如果该文件位于 NTFS 文件系统上,则会写入文件缓存中的文件数据和元数据。 基础存储未同步以刷新其缓存。 此标志对卷句柄无效。 |
Parameters
调用方 I/O 状态块的地址。 此参数是必需的,不能 NULL。
ParametersSize
参数块的大小(以字节为单位)。
[out] IoStatusBlock
调用方 I/O 状态块的地址。 此参数是必需的,不能 NULL。
返回值
ZwFlushBuffersFileEx 返回 STATUS_SUCCESS 或相应的 NTSTATUS 值,例如以下值之一:
返回代码 | 描述 |
---|---|
|
该文件驻留在受写保护的卷上;这是一个错误代码。 |
|
该文件驻留在当前未装载的卷上;这是一个错误代码。 |
|
该文件既没有写入访问权限,也没有追加访问权限。 |
言论
文件系统筛选器驱动程序可以调用 ZwFlushBuffersFileEx,向给定文件的文件系统发出 IRP_MJ_FLUSH_BUFFERS 请求。 刷新操作是同步的。
微型筛选器驱动程序应调用 FltFlushBuffers,而不是调用 ZwFlushBuffersFileEx。
ZwFlushBuffersFileEx 的调用方必须在 IRQL = PASSIVE_LEVEL上运行,启用了特殊内核 APC。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 8。 |
目标平台 | 普遍 |
标头 | ntifs.h (include Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL(请参阅“备注”部分)。 |