圧縮状態
個々のファイルとディレクトリの圧縮をサポートするボリューム上の各ファイルとディレクトリには 、圧縮状態があります。
ファイルまたはディレクトリの圧縮属性は、ファイルまたはディレクトリが圧縮されているかどうかだけを示しますが、圧縮状態では圧縮データの形式も指定されます。
FSCTL_GET_COMPRESSIONコントロール コードを使用して、ファイルまたはディレクトリの圧縮状態を確認します。
圧縮状態は、16 ビット値としてエンコードされます。 COMPRESSION_FORMAT_NONEの圧縮状態の値は、ファイルが圧縮されていないことを示します。 COMPRESSION_FORMAT_DEFAULT の値は、既定の圧縮形式を使用してファイルが圧縮されていることを示します。 その他の値は、圧縮状態の値で指定された圧縮形式を使用して、ファイルが圧縮されていることを示します。
FSCTL_SET_COMPRESSIONコントロール コードを使用して、ファイルまたはディレクトリの圧縮状態を設定します。 この操作により、ファイルまたはディレクトリの圧縮属性も設定されます。
ファイルの圧縮状態を 0 以外の値に設定すると、圧縮状態の値でエンコードされた圧縮形式を使用してファイルが圧縮されます。 ファイルの圧縮状態を 0 に設定すると、ファイルが圧縮解除されます。 これらは同期操作です。 ファイルは、圧縮状態を設定するとすぐに圧縮または圧縮解除されます。
ディレクトリの圧縮状態を設定しても、即時の圧縮または圧縮解除は発生しません。 代わりに、ディレクトリの圧縮状態を設定すると、新しく作成されたすべてのファイルとサブディレクトリに与えられる既定の圧縮状態が設定されます。