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


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 (include Ntdddisk.h)

См. также

REASSIGN_BLOCKS