Share via


FSCTL_ALLOW_EXTENDED_DASD_IO IOCTL (winioctl.h)

Indique au pilote du système de fichiers de ne pas effectuer de vérification des limites d’E/S sur les appels de lecture ou d’écriture de partition. Au lieu de cela, les vérifications de limites sont effectuées par le pilote de périphérique.

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

C++
BOOL DeviceIoControl(
  (HANDLE) hDevice,              // handle to device
  FSCTL_ALLOW_EXTENDED_DASD_IO,  // dwIoControlCodeNULL,                          // lpInBuffer0,                             // nInBufferSizeNULL,                          // lpOutBuffer0,                             // nOutBufferSize(LPDWORD) lpBytesReturned,     // number of bytes returned
  (LPOVERLAPPED) lpOverlapped    // OVERLAPPED structure
);

Remarques

Un appel utilisant le code de contrôle FSCTL_ALLOW_EXTENDED_DASD_IO ne doit être utilisé qu’avec une grande prudence par les programmeurs familiarisés avec la structure sous-jacente d’un disque dur et d’un système de fichiers. Une utilisation incorrecte ou une vérification incorrecte dans les opérations d’écriture suivantes sur la partition peuvent endommager les données de la partition ou détruire l’ensemble de la partition.

Le code de contrôle FSCTL_ALLOW_EXTENDED_DASD_IO est utilisé pour indiquer au pilote du système de fichiers de ne pas effectuer de vérification des limites d’E/S sur les appels en lecture ou en écriture effectués avec le handle spécifié. FSCTL_ALLOW_EXTENDED_DASD_IO autorise l’accès aux secteurs masqués, une partie de la partition qui peut exister entre le premier secteur de la partition (le bloc de paramètres de démarrage) et le premier secteur utile de la partition. FSCTL_ALLOW_EXTENDED_DASD_IO autorise également l’accès aux clusters perdus, qui peuvent exister entre le dernier cluster utile et la fin de la partition.

Demandes d’E/S émises après que cette opération est passée directement au pilote de périphérique. Si ces appels suivants demandent des données au-delà de la limite de la partition, le pilote provoque leur échec.

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

Pour récupérer un handle dans une partition, appelez CreateFile avec le paramètre lpFileName défini sur une chaîne au format suivant :

\.\X :

X est la lettre de lecteur.

L’application appelant CreateFile doit également spécifier les indicateurs FILE_SHARE_READ et FILE_SHARE_WRITE dans le paramètre dwShareMode de CreateFile. Pour plus d’informations, consultez la section Périphériques de disque dans CreateFile.

Pour déterminer la structure de partition du lecteur et déterminer si le système reconnaît la partition, utilisez le code de contrôle IOCTL_DISK_GET_DRIVE_LAYOUT_EX ou IOCTL_DISK_GET_DRIVE_LAYOUT , le cas échéant. Pour obtenir des informations similaires sur une partition unique, utilisez le code de contrôle IOCTL_DISK_GET_PARTITION_INFO_EX ou IOCTL_DISK_GET_PARTITION_INFO , le cas échéant. Pour déterminer la taille d’un cluster, utilisez la fonction GetDiskFreeSpaceEx ou GetDiskFreeSpace , le cas échéant.

Dans Windows Server 2012, cette fonction est prise 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) 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

CreateFile

DeviceIoControl

Codes de contrôle de gestion des fichiers

GetDiskFreeSpace

GetDiskFreeSpaceEx

IOCTL_DISK_GET_DRIVE_LAYOUT

IOCTL_DISK_GET_DRIVE_LAYOUT_EX

IOCTL_DISK_GET_PARTITION_INFO

IOCTL_DISK_GET_PARTITION_INFO_EX

OVERLAPPED