FSCTL_ALLOW_EXTENDED_DASD_IO IOCTL (winioctl.h)
Сигнализирует драйверу файловой системы не выполнять никаких проверок границ ввода-вывода при вызовах чтения или записи секций. Вместо этого проверки границ выполняются драйвером устройства.
Для выполнения этой операции вызовите функцию DeviceIoControl со следующими параметрами.
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 ); |
Комментарии
Вызов с использованием кода управления FSCTL_ALLOW_EXTENDED_DASD_IO следует использовать только с большой осторожностью программистов, знакомых с базовой структурой жесткого диска и файловой системы. Неправильное использование или неточная проверка последующих операций записи в секцию может привести к повреждению данных в секции или разрушению всей секции.
Код элемента управления FSCTL_ALLOW_EXTENDED_DASD_IO используется для того, чтобы драйвер файловой системы не выполнял никаких проверок границ ввода-вывода при вызовах чтения или записи, выполняемых с помощью указанного дескриптора. FSCTL_ALLOW_EXTENDED_DASD_IO разрешает доступ к скрытым секторам, которые могут существовать между первым сектором секции (блоком параметров загрузки) и первым полезным сектором секции. FSCTL_ALLOW_EXTENDED_DASD_IO также разрешает доступ к потерянным кластерам, которые могут существовать между последним полезным кластером и концом секции.
Запросы ввода-вывода, выданные после этой операции, передаются непосредственно драйверу устройства. Если последующие вызовы запрашивают данные за пределами секции, драйвер приводит к сбою.
Сведения о последствиях перекрывающихся операций ввода-вывода для этой операции см. в разделе Примечания статьи DeviceIoControl.
Чтобы получить дескриптор для секции, вызовите CreateFile с параметром lpFileName , для которого задана строка следующей формы:
\.\X:
где X — буква диска.
Приложение, вызывающее CreateFile , также должно указать флаги FILE_SHARE_READ и FILE_SHARE_WRITE в параметре dwShareModeэлемента CreateFile. Дополнительные сведения см. в разделе Disk Devices статьи CreateFile.
Чтобы определить структуру секционирования диска и определить, распознает ли система секцию, используйте соответствующий код управления IOCTL_DISK_GET_DRIVE_LAYOUT_EX или IOCTL_DISK_GET_DRIVE_LAYOUT . Для получения аналогичных сведений об одной секции используйте код элемента управления IOCTL_DISK_GET_PARTITION_INFO_EX или IOCTL_DISK_GET_PARTITION_INFO соответствующим образом. Чтобы определить размер кластера, используйте функцию GetDiskFreeSpaceEx или GetDiskFreeSpace соответствующим образом.
В Windows Server 2012 эта функция поддерживается следующими технологиями.
Технология | Поддерживается |
---|---|
Протокол SMB 3.0 | Нет |
Прозрачная отработка отказа (TFO) SMB 3.0 | Нет |
SMB 3.0 с масштабируемыми общими папками (SO) | Нет |
Файловая система общего тома кластера (CSVFS) | Да |
Восстанавливаемая файловая система (ReFS) | Да |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Верхняя часть | winioctl.h (включая Windows.h) |
См. также раздел
Управляющие коды для управления файлами
IOCTL_DISK_GET_DRIVE_LAYOUT_EX
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по