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:
où 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
codes de contrôle de gestion des fichiers
IOCTL_DISK_GET_DRIVE_LAYOUT_EX