FSCTL_GET_NTFS_FILE_RECORD IOCTL (winioctl.h)

Récupère le premier enregistrement de fichier en cours d’utilisation et dont la valeur ordinale est inférieure ou égale au numéro de référence du fichier demandé.

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

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

Remarques

Ce code de contrôle énumère les identificateurs de fichier de manière descendante et retourne toujours un enregistrement de fichier en cours d’utilisation. Cela signifie que l’identificateur de fichier retourné par ce code de contrôle peut ne pas être identique à l’identificateur de fichier spécifié dans la mémoire tampon d’entrée. Par exemple, si les identificateurs de fichier 1 à 9 et 15 sont en cours d’utilisation, que les identificateurs de fichier 10 à 14 ne sont pas utilisés et que l’enregistrement de fichier correspondant à l’identificateur de fichier 15 est demandé, cet enregistrement de fichier est retourné.

Si les enregistrements de fichier qui correspondent aux identificateurs de fichier 10 à 14 sont demandés, l’enregistrement de fichier correspondant à l’identificateur de fichier 9 est retourné. Si l’un des enregistrements de fichier correspondant aux identificateurs de fichier 1 à 9 est demandé, ces enregistrements de fichier sont retournés.

Pour déterminer la taille correcte de la mémoire tampon de sortie pointée par lpOutBuffer, appelez d’abord le code de contrôle FSCTL_GET_NTFS_VOLUME_DATA pour obtenir la taille d’un enregistrement de fichier. Il s’agit de la valeur du membre BytesPerFileRecordSegment de la structure NTFS_VOLUME_DATA_BUFFER retournée. Définissez ensuite la taille de la mémoire tampon de sortie sur l’expression suivante :

sizeof (NTFS_FILE_RECORD_OUTPUT_BUFFER) + sizeof (one file record) - 1

Si un fichier se compose de plusieurs enregistrements de fichiers, ils doivent être récupérés individuellement.

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

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