Partager via


FSCTL_ALLOW_EXTENDED_DASD_IO IOCTL (winioctl.h)

Signale au pilote du système de fichiers de ne pas effectuer de vérifications de limites d’E/S sur les appels de lecture ou d’écriture de partition. Au lieu de cela, les vérifications des 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 inexacte dans les opérations d’écriture suivantes dans la partition peut entraîner des dommages aux données sur la partition ou à la destruction de la partition entière.

Le code de contrôle FSCTL_ALLOW_EXTENDED_DASD_IO est utilisé pour signaler au pilote du système de fichiers de ne pas effectuer de vérifications de 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 une fois cette opération transmises directement au pilote de périphérique. Si ces appels suivants demandent des données au-delà de la limite de partition, le pilote les entraîne à échouer.

Pour connaître les implications des E/S superposées 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 du formulaire 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 Appareils 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 seule partition, 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 fonction GetDiskFreeSpace, le cas échéant.

Dans Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.

Technologie Supporté
Protocole SMB (Server Message Block) 3.0 Non
Basculement transparent SMB 3.0 (TFO) Non
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) Non
Cluster Shared Volume File System (CsvFS) Oui
Système de fichiers résilient (ReFS) Oui

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2003 [applications de bureau uniquement]
d’en-tête winioctl.h (include 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

SUPERPOSÉ