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 (請參閱一節。 |