次の方法で共有


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 プロトコル はい
SMB 3.0 Transparent Failover (TFO) いいえ
スケールアウト ファイル共有 (SO) を使う SMB 3.0 いいえ
クラスターの共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) いいえ

SMB 3.0 Transparent Failover and Scale-Out では、NTFS 圧縮ファイルはサポートされていません。 FSCTL 呼び出しはブロックされませんが、サポートされていません。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header winioctl.h (Windows.h を含む)

こちらもご覧ください