Функция 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 в блоке состояния ввода-вывода размер(CHANGER_SET_POSITION) перед возвратом к драйверу класса смены.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | mcd.h (включая Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |