Partager via


FSCTL_GET_COMPRESSION IOCTL (winioctl.h)

Récupère l’état de compression actuel d’un fichier ou d’un répertoire sur un volume dont le système de fichiers prend en charge la compression par flux.

Pour effectuer cette opération, appelez la fonction DeviceIoControl avec les paramètres suivants.

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
);

Remarques

L’algorithme de compression LZNT1 est le seul algorithme de compression implémenté.

COMPRESSION_FORMAT_DEFAULT n’étant pas un état de compression, il n’est pas inclus dans la table sous le paramètre lpOutBuffer . Cette valeur est utilisée uniquement avec le code de contrôle FSCTL_SET_COMPRESSION .

Si le système de fichiers du volume contenant le fichier ou le répertoire spécifié ne prend pas en charge la compression par fichier ou par répertoire, l’opération échoue.

Vous pouvez définir l’état de compression d’un fichier ou d’un répertoire à l’aide du code de contrôle FSCTL_SET_COMPRESSION . Vous pouvez également compresser ou décompresser un fichier à l’aide de ce code de contrôle.

Vous pouvez récupérer l’attribut de compression d’un fichier ou d’un répertoire en appelant la fonction GetFileAttributes . L’attribut de compression indique si un fichier ou un répertoire est compressé. L’état de compression indique si un fichier ou un répertoire est compressé et, le cas échéant, le format des données compressées.

Dans Windows 8 et Windows Server 2012, ce code est pris en charge par les technologies suivantes.

Technologie Prise en charge
Protocole Server Message Block (SMB) 3.0 Oui
Basculement transparent SMB 3.0 (TFO) No
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) No
Système de fichiers du volume partagé de cluster (CsvFS) Oui
Système de fichiers résilient (ReFS) No

Le basculement transparent et les Scale-Out SMB 3.0 ne prennent pas en charge les fichiers compressés NTFS. L’appel FSCTL n’est pas bloqué, mais non pris en charge.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête winioctl.h (inclure Windows.h)

Voir aussi