Функция ChangerExchangeMedium (mcd.h)

ChangerExchangeMedium обрабатывает аспекты IRP управления устройствами с IOCTL_CHANGER_EXCHANGE_MEDIUMкода IOCTL.

Синтаксис

NTSTATUS ChangerExchangeMedium(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] PIRP           Irp
);

Параметры

[in] DeviceObject

Указатель на объект устройства, представляющий средство изменения.

[in] Irp

Указатель на IRP.

Возвращаемое значение

Если изменение поддерживает обмен мультимедиа, ChangerExchangeMedium возвращает состояние, возвращаемое драйвером системного порта, или одно из следующих значений:

STATUS_SUCCESS

STATUS_DESTINATION_ELEMENT_FULL

STATUS_INVALID_ELEMENT_ADDRESS

STATUS_SOURCE_ELEMENT_EMPTY

Если изменение не поддерживает обмен мультимедиа, ChangerExchangeMedium возвращает STATUS_INVALID_DEVICE_REQUEST.

Замечания

Эта подпрограмма требуется.

ChangerExchangeMedium перемещает часть носителя из исходного элемента в одно место назначения и из этого назначения в другое. Источник и второе назначение часто совпадают, что приводит к простому обмену мультимедиа.

Флаг CHANGER_EXCHANGE_MEDIA в Features0 структуры GET_CHANGER_PARAMETERS указывает, поддерживает ли меняющийся набор функций. Средство изменения, поддерживающее обмен мультимедиа, обычно имеет два механизма выбора для одного транспортного элемента или по крайней мере два транспортных элемента. Средство изменения с одним механизмом выбора может поддерживать обмен средой с помощью эмуляции команды.

Драйвер класса changer проверяет длину входного буфера в расположении стека ввода-вывода перед вызовом процедуры драйвера miniclass ChangerExchangeMedium. Irp—>SystemBuffer указывает на структуру CHANGER_EXCHANGE_MEDIUM в качестве входного параметра, указывающего элемент транспорта и назначение для задания.

ChangerExchangeMedium сначала проверяет, допустимы ли адреса элементов транспорта, источника и назначения, а затем преобразует адреса элементов на основе нуля в адреса элементов для конкретного устройства. Затем он создает SRB с CDB для обмена носителем и отправляет его в системный драйвер порта.

Требования

Требование Ценность
целевая платформа Настольный
заголовка mcd.h (включая Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

См. также

CHANGER_ELEMENT

CHANGER_EXCHANGE_MEDIUM

ChangerMoveMedium

GET_CHANGER_PARAMETERS