FSCTL_GET_RETRIEVAL_POINTERS IOCTL (winioctl.h)

Avec un descripteur de fichier, récupère une structure de données qui décrit l’allocation et l’emplacement sur le disque d’un fichier spécifique, ou, en fonction d’un descripteur de volume, les emplacements des clusters défectueux sur un volume.

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

DeviceIoControl(
  (HANDLE) hDevice,                 // handle to file, directory, or volume
  FSCTL_GET_RETRIEVAL_POINTERS,     // 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

L’opération FSCTL_GET_RETRIEVAL_POINTERS récupère une structure de données de taille variable qui décrit l’allocation et l’emplacement sur le disque d’un fichier spécifique. La structure décrit le mappage entre les numéros de cluster virtuels (décalages VCN dans l’espace de fichier ou de flux) et les numéros de cluster logiques (décalages LCN dans l’espace de volume).

Le code de contrôle FSCTL_GET_RETRIEVAL_POINTERS est pris en charge pour les opérations de fichier ou de répertoire sur les systèmes de fichiers NTFS, FAT, exFAT, UDF et ReFS.

Sur les systèmes de fichiers pris en charge, l’opération FSCTL_GET_RETRIEVAL_POINTERS retourne les emplacements d’extension des données non réidentes. Les données résidentes n’ont jamais d’emplacements d’étendue.

Le code de contrôle FSCTL_GET_RETRIEVAL_POINTERS prend également en charge l’autre fonctionnalité de localisation des clusters incorrects. Pour rechercher les emplacements des clusters défectueux sur un volume mis en forme avec NTFS, FAT ou exFAT, utilisez un handle de volume comme paramètre hDevice . Cette fonctionnalité est prise en charge uniquement sur NTFS, FAT et exFAT, et l’appelant doit avoir MANAGE_VOLUME_ACCESS autorisation sur le volume.

Pour connaître les implications des E/S qui se chevauchent sur cette opération, consultez la section Remarques de la rubrique DeviceIoControl .

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

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