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

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

Синтаксис

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

Параметры

[in] DeviceObject

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

[in] Irp

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

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

Если средство изменения поддерживает установку положения элемента транспорта, Функция ChangerSetPosition возвращает состояние, возвращаемое драйвером системного порта, или одно из следующих значений:

STATUS_SUCCESS

STATUS_INFO_LENGTH_MISMATCH

STATUS_INVALID_PARAMETER

STATUS_INSUFFICIENT_RESOURCES

Если средство изменения не поддерживает установку положения элемента транспорта, Функция ChangerSetPosition возвращает STATUS_INVALID_DEVICE_REQUEST.

Комментарии

Эта подпрограмма является обязательной.

ChangerSetPosition задает роботизированный транспортный механизм средства смены к указанному месту назначения, как правило, для оптимизации перемещения или обмена носителями путем первоначального позиционирования транспорта.

Флаг CHANGER_POSITION_TO_ELEMENT в Features0GET_CHANGER_PARAMETERS указывает, поддерживает ли средство смены эту функцию.

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

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

ChangerSetPosition задает для поля Information в блоке состояния ввода-вывода значение sizeof(CHANGER_SET_POSITION) перед возвратом в драйвер класса changer.

Требования

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

См. также раздел

, IOCTL_CHANGER_SET_POSITION

CHANGER_ELEMENT

CHANGER_SET_POSITION