共用方式為


FSCTL_SET_ZERO_DATA控件程式代碼

FSCTL_SET_ZERO_DATA控件程式代碼會以零 (0) 填滿指定的檔案範圍。 如果檔案是疏鬆或壓縮的,NTFS 檔系統可能會解除分配檔案中的磁碟空間。 這會將位元組的範圍設定為零, (0) ,而不會擴充檔案大小。

若要從驅動程序執行這項作業,請使用下列參數呼叫 FltFsControlFile

參數

  • 實例:呼叫端的不透明實例指標。 這個參數是必要的,而且不能是 NULL

  • FileObject [in]:要寫入零之檔案的檔案對象指標。 這個參數是必要的,而且不能是 NULL

  • FsControlCode [in]:作業的控制程序代碼。

針對此作業使用 FSCTL_SET_ZERO_DATA

FileOffset 成員是第一個字節的位元組位移,設定為零 (0 ) ,BeyondFinalZero 成員是前一個字節的位元移,超過最後一個零 (0 個) 位元組。

FILE_ZERO_DATA_INFORMATION_EX中的 Flags 成員會指定作業的修飾詞。 例如,當 Flags 設定為 FILE_ZERO_DATA_INFORMATION_FLAG_PRESERVE_CACHED_DATA時,不會清除對應至此檔案範圍的快取內容。

  • InputBufferLength [in]:輸入緩衝區的大小,以位元組為單位。

  • OutputBuffer [out]: 未搭配此作業使用;設定為 NULL

  • OutputBufferLength [out]: 未搭配此作業使用;設定為零。

狀態區塊

FltFsControlFile傳回STATUS_SUCCESS 或適當的 NTSTATUS 值。

傳回碼 意義
狀態_INSUFFICIENT_RESOURCES 記憶體不足,無法完成此作業。
STATUS_INVALID_PARAMETER InputBufferLength 小於FILE_ZERO_DATA_INFORMATION結構的大小,或指定的檔案是系統元數據檔案或目錄。
STATUS_ACCESS_DENIED FILE_ZERO_DATA_INFORMATION_FLAG_PRESERVE_CACHED_DATA是從使用者模式設定。
STATUS_MEDIA_WRITE_PROTECTED 磁碟區目前受到寫入保護。

規格需求

需求類型 需求
標頭 Ntifs.h (包含 Ntifs.h)

另請參閱

FltFsControlFile

FILE_ZERO_DATA_INFORMATION

FILE_ZERO_DATA_INFORMATION_EX