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