Функция 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 |