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