Функция ChangerMoveMedium (mcd.h)
ChangerMoveMedium обрабатывает аспекты IRP управления устройствами с помощью кода IOCTL IOCTL_CHANGER_MOVE_MEDIUM.
Синтаксис
NTSTATUS ChangerMoveMedium(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
Параметры
[in] DeviceObject
Указатель на объект устройства, представляющий средство изменения.
[in] Irp
Указатель на IRP.
Возвращаемое значение
ChangerMoveMedium возвращает состояние, возвращаемое драйвером системного порта, или одно из следующих значений:
STATUS_SUCCESS
STATUS_DESTINATION_ELEMENT_FULL
STATUS_INVALID_ELEMENT_ADDRESS
STATUS_INVALID_DEVICE_REQUEST
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
STATUS_SOURCE_ELEMENT_EMPTY
Замечания
Эта подпрограмма требуется.
ChangerMoveMedium перемещает часть носителя из одного элемента в другой.
Драйвер класса changer проверяет длину входного буфера в расположении стека ввода-вывода перед вызовом ChangerMoveMedium. Irp—>SystemBuffer указывает на структуру CHANGER_MOVE_MEDIUM, указывающую элемент транспорта, источник, назначение и возможность перевернуть среду.
ChangerMoveMedium сначала проверяет, допустимы ли адреса элементов транспорта, источника и назначения, а затем преобразует адреса элементов на основе нуля в адреса, относящиеся к устройству. Затем он создает SRB с CDB для перемещения части носителя и отправляет его в драйвер системного порта.
ChangerMoveMedium задает поле Information в блоке состояния ввода-вывода значение sizeof(CHANGER_MOVE_MEDIUM), прежде чем вернуться к драйверу класса changer.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | mcd.h (включая Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |