IOCTL_DISK_REASSIGN_BLOCKS_EX IOCTL (ntdddisk.h)
Сопоставляет дефектные блоки с новым расположением на диске. Этот запрос предписывает устройству переназначить недопустимый адрес блока в хороший блок из пула запасных блоков.
Запрос IOCTL_DISK_REASSIGN_BLOCKS_EX позволяет использовать больше блоков для назначения, чем запрос IOCTL_DISK_REASSIGN_BLOCKS .
Основной код
Входной буфер
Буфер в Irp-AssociatedIrp.SystemBuffer> содержит REASSIGN_BLOCKS_EX значения, которые необходимо задать. Обратите внимание, что эта структура содержит массив блоков переменного размера. Вызывающий объект отвечает за сортировку массива номеров блоков в порядке возрастания.
Длина входного буфера
Parameters.DeviceIoControl.InputBufferLength в расположении стека ввода-вывода IRP указывает размер буфера в байтах, который должен иметь >значение = sizeof(REASSIGN_BLOCKS_EX).
Выходной буфер
Нет.
Длина выходного буфера
Нет.
Блок состояния
Поле Сведения равно нулю. Для поля Состояние можно задать значение STATUS_SUCCESS или, возможно, STATUS_INFO_LENGTH_MISMATCH, STATUS_INSUFFICIENT_RESOURCES или STATUS_BUFFER_TOO_SMALL.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 8. |
Верхняя часть | ntdddisk.h (включая Ntdddisk.h) |