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 в параметре dwShareModeCreateFile. Дополнительные сведения см. в разделе "Устройства с дисками" 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 | Нет |
Отработка отказа SMB 3.0 (TFO) | Нет |
SMB 3.0 с масштабируемыми общими папками (SO) | Нет |
Файловая система общего тома кластера (CSVFS) | Да |
Отказоустойчивая файловая система (ReFS) | Да |
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
заголовка | winioctl.h (включая Windows.h) |
См. также
IOCTL_DISK_GET_DRIVE_LAYOUT_EX