共用方式為


FltFlushBuffers2 函式 (fltkernel.h)

小型篩選驅動程式會呼叫 FltFlushBuffers2,以將排清要求傳送給指定檔案的文件系統。

語法

NTSTATUS FLTAPI FltFlushBuffers2(
  PFLT_INSTANCE      Instance,
  PFILE_OBJECT       FileObject,
  ULONG              FlushType,
  PFLT_CALLBACK_DATA CallbackData
);

參數

Instance

[in]呼叫迷你篩選驅動程序實例的不透明實例指標。 這是必要參數,而且不能是 NULL。

FileObject

[in]要排清之檔案或磁碟區的檔案對象指標。 這是必要參數,而且不能是 NULL。

FlushType

[in]指定檔案系統應該在檔案上執行的排清類型。 FlushType 可以是下列其中一項:

FlushType 作業值 描述
0 如果 fileObject 適用於檔案,則會寫入檔案快取中的檔案數據和元數據,並將同步處理基礎記憶體來排清其快取。 如果 FileObject 適用於磁碟區,檔系統將會寫入磁碟區上所有已修改檔案的檔案數據和元數據,並將基礎記憶體同步處理以排清其快取。 此作業相當於 FltFlushBuffers
FLT_FLUSH_TYPE_FLUSH_AND_PURGE 與 0 相同(FltFlushBuffers),不同之處在於快取也會在排清完成之後清除。
FLT_FLUSH_TYPE_FILE_DATA_ONLY 如果檔案位於NTFS檔案系統上,則只會寫入檔案快取中的檔案數據。 不會寫入任何元數據,而且基礎記憶體不會同步處理以排清其快取。 如果 FileObject 適用於磁碟區,則這個旗標無效。
FLT_FLUSH_TYPE_NO_SYNC 如果檔案位於NTFS檔系統上,則會寫入檔案快取中的檔案數據和元數據。 基礎記憶體不會同步處理以排清其快取。 如果 FileObject 適用於磁碟區,則這個旗標無效。
FLT_FLUSH_TYPE_DATA_SYNC_ONLY 如果檔案位於NTFS檔案系統上,則會寫入檔案快取中的檔案數據。 未寫入任何元數據。 基礎記憶體會同步處理以排清其快取。 如果 fileObject 磁碟區或目錄,則這個旗標無效。

CallbackData

[in/optional]選擇性 FLT_CALLBACK_DATA 結構的指標,用來傳播呼叫端的 IRP 延伸模組。 請參閱 FltPropagateIrpExtension

傳回值

FltFlushBuffers2 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:

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

言論

小型篩選驅動程式可以呼叫 FltFlushBuffers2,對指定的檔案向文件系統發出 IRP_MJ_FLUSH_BUFFERS 要求。 排清作業是同步的,而且會在指定的實例 下方發出實例。

如果檔案位於NTFS文件系統上,迷你篩選程式可以透過 FlushType 參數控制排清的類型。

要求

要求 價值
最低支援的用戶端 Windows 10 版本 1903
標頭 fltkernel.h

另請參閱

FltFlushBuffers

FltPropagateIrpExtension

IRP_MJ_FLUSH_BUFFERS