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 值,例如下列其中一項:

傳回碼 Description
STATUS_MEDIA_WRITE_PROTECTED
檔案位於受寫入保護的磁碟區上;這是錯誤碼。
STATUS_VOLUME_DISMOUNTED
檔案位於目前未掛接的磁碟區上;這是錯誤碼。

備註

文件系統篩選驅動程式可以呼叫 ZwFlushBuffersFile ,向指定檔案的文件系統發出 IRP_MJ_FLUSH_BUFFERS 要求。 排清作業是同步的。

Minifilter 驅動程序應該呼叫 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-the-native-system-services-routines) 。

規格需求

需求
最低支援的用戶端 Windows Vista
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL (请参阅一节)
DDI 合規性規則 HwStorPortProhibitedDDIs (storport) PowerIrpDDis (wdm)

另請參閱

FltFlushBuffers

IRP_MJ_FLUSH_BUFFERS

使用原生系統服務例程的 Nt 和 Zw 版本

ZwCreateFile

ZwOpenFile