FSCTL_GET_COMPRESSION IOCTL (winioctl.h)

擷取檔案系統支援每個數據流壓縮之磁碟區上檔案或目錄的目前壓縮狀態。

若要執行這項作業,請使用下列參數呼叫 DeviceIoControl 函 式。

BOOL DeviceIoControl(
  (HANDLE) hDevice,             // handle to file
  FSCTL_GET_COMPRESSION,        // dwIoControlCode
  NULL,                         // lpInBuffer 
  0,                            // nInBufferSize
  (LPVOID) lpOutBuffer,         // output buffer
  (DWORD) nOutBufferSize,       // size of output buffer
  (LPDWORD) lpBytesReturned,    // number of bytes returned
  (LPOVERLAPPED) lpOverlapped   // OVERLAPPED structure
);

備註

LZNT1 壓縮演算法是唯一實作的壓縮演算法。

COMPRESSION_FORMAT_DEFAULT不是壓縮狀態,因此它不會包含在 lpOutBuffer 參數下的數據表中。 這個值只會與 FSCTL_SET_COMPRESSION 控件程式代碼搭配使用。

如果包含指定檔案或目錄之磁碟區的檔案系統不支援個別檔案或每一目錄壓縮,作業就會失敗。

您可以使用 FSCTL_SET_COMPRESSION 控制程式程式代碼來設定檔案或目錄的壓縮狀態。 您也可以使用此控制項程式碼壓縮或取消壓縮檔案。

您可以呼叫 GetFileAttributes 函式來擷取檔案或目錄的壓縮屬性。 壓縮屬性會指出是否壓縮檔案或目錄。 壓縮狀態會指出是否壓縮檔案或目錄,如果為壓縮資料的格式,則為 。

在 Windows 8 和 Windows Server 2012 中,下列技術支援此程序代碼。

技術 支援
伺服器消息塊 (SMB) 3.0 通訊協定 Yes
SMB 3.0 透明故障轉移 (TFO) No
具有向外延展檔案共用的SMB 3.0 (SO) No
叢集共用磁碟區文件系統 (CsvFS) Yes
彈性檔案系統 (ReFS) No

SMB 3.0 透明故障轉移和 Scale-Out 不支援NTFS壓縮檔案。 FSCTL 呼叫不會遭到封鎖,但不受支援。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
標頭 winioctl.h (包含 Windows.h)

另請參閱