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


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

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

Синтаксис

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 проверяет длину входного буфера в расположении стека ввода-вывода перед вызовом подпрограммы 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