FSCTL_FILE_LEVEL_TRIM IOCTL (winioctl.h)
指出指定檔案中不需要由儲存系統儲存的範圍。
若要執行這項作業,請使用下列參數呼叫 DeviceIoControl 函式。
BOOL DeviceIoControl(
(HANDLE) hDevice, // Handle to a file
FSCTL_FILE_LEVEL_TRIM, // dwIoControlCode
(LPVOID) lpInBuffer, // Input buffer
(DWORD) nInBufferSize, // Size of input buffer
(LPVOID) lpOutBuffer, // Output buffer
(DWORD) nOutBufferSize, // Size of output buffer
(LPDWORD) lpBytesReturned, // Number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
備註
FSCTL_FILE_LEVEL_TRIM控件程式代碼是基礎記憶體系統的提示。 當已修剪某個字節範圍時,如果稍後再讀取該範圍,傳回的數據可能是修剪作業之前的原始數據—所有零 (0x00 個字節) 、所有位元組 (0xff 位元組) 或組合。 在修剪作業傳遞至基礎儲存系統之前,輸入範圍會減少,以與 32 位版本和 x64 版本的 Windows) 8,192 個字節 Itanium-Based 版上的頁面界限對齊 (4,096 個字節。
如果在處理 lpInBuffer 參數所指向之輸入緩衝區中FILE_LEVEL_TRIM結構之後的FILE_LEVEL_TRIM_RANGE專案時發生錯誤,則處理會停止,而 lpOutBuffer 參數所指向之FILE_LEVEL_TRIM_OUTPUT結構的 NumRangesProcessed 成員則會指出已成功處理的範圍。 未處理 NumRangesProcessed 與 FILE_LEVEL_TRIM 結構之 NumRanges 成員之間的任何範圍。
FSCTL_FILE_LEVEL_TRIM控件程式代碼與加密或壓縮的檔案不相容, (GetFileAttributes 會傳回FILE_ATTRIBUTE_ENCRYPTED或FILE_ATTRIBUTE_COMPRESSED) ,而且會失敗並ERROR_INVALID_PARAMETER。 支援FILE_ATTRIBUTE_SPARSE_FILE ) 所指示的疏鬆檔案 (,但只能修剪已配置的範圍。 支援 BitLocker 技術加密磁碟區上的檔案,而個別加密的檔案則不受支援。
FSCTL_FILE_LEVEL_TRIM控件程式代碼不會參與交易。 如果在交易期間處理 FSCTL_FILE_LEVEL_TRIM 控制程式代碼,且交易已中止,則不會使用交易回復修剪。
成功修剪的範圍將會從文件系統快取中移除。
修剪的範圍可以超出 VDL (的有效數據長度,) 到 EOF (EOF) 為止。
在 Windows 8 和 Windows Server 2012 中,下列技術支援此程序代碼。
技術 | 支援 |
---|---|
伺服器消息塊 (SMB) 3.0 通訊協定 | Yes |
SMB 3.0 透明故障轉移 (TFO) | Yes |
具有向外延展檔案共用的SMB 3.0 (SO) | Yes |
叢集共用磁碟區文件系統 (CsvFS) | Yes |
彈性檔案系統 (ReFS) | No |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
標頭 | winioctl.h (包含 Windows.h) |