Поделиться через


IOCTL_DISK_REASSIGN_BLOCKS IOCTL (ntdddisk.h)

Сопоставляет дефектные блоки с новым расположением на диске. Этот запрос предписывает устройству переназначить недопустимый адрес блока в хороший блок из пула запасных блоков.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Буфер в Irp-AssociatedIrp.SystemBuffer> содержит REASSIGN_BLOCKS значения, которые необходимо задать. Обратите внимание, что эта структура содержит массив блоков переменного размера. Вызывающий объект отвечает за сортировку массива номеров блоков в порядке возрастания.

Длина входного буфера

Parameters.DeviceIoControl.InputBufferLength в расположении стека ввода-вывода IRP указывает размер буфера в байтах, который должен быть >= sizeof(REASSIGN_BLOCKS).

Выходной буфер

Нет.

Длина выходного буфера

Нет.

Блок состояния

Поле Сведения равно нулю. Для поля Состояние можно задать значение STATUS_SUCCESS или, возможно, STATUS_INFO_LENGTH_MISMATCH, STATUS_INSUFFICIENT_RESOURCES или STATUS_BUFFER_TOO_SMALL.

Требования

Требование Значение
Заголовок ntdddisk.h (включая Ntdddisk.h)

См. также раздел

REASSIGN_BLOCKS