ChangerSetPosition 函数 (mcd.h)

ChangerSetPosition 使用 IOCTL 代码 IOCTL_CHANGER_SET_POSITION处理设备控制 IRP 的设备特定方面。

语法

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

参数

[in] DeviceObject

指向表示更改器的设备对象的指针。

[in] Irp

指向 IRP 的指针。

返回值

如果 changer 支持设置传输元素的位置,ChangerSetPosition 返回系统端口驱动程序返回的状态,或以下值之一:

STATUS_SUCCESS

STATUS_INFO_LENGTH_MISMATCH

STATUS_INVALID_PARAMETER

STATUS_INSUFFICIENT_RESOURCES

如果更改器不支持设置传输元素的位置,ChangerSetPosition 将返回STATUS_INVALID_DEVICE_REQUEST。

言论

此例程是必需的。

ChangerSetPosition 将变更器的机器人传输机制设置为指定目标,通常通过首先定位传输来优化移动或交换媒体。

Features0 中的CHANGER_POSITION_TO_ELEMENT标志 GET_CHANGER_PARAMETERS 指示更改程序是否支持此功能。

在调用 changerSetPosition之前,changer 类驱动程序先检查 I/O 堆栈位置中的输入缓冲区长度。 Irp->SystemBuffer 指向 CHANGER_SET_POSITION 结构作为输入参数,指示要设置的传输元素和目标。

ChangerSetPosition 首先验证传输和目标元素地址是否有效,并将从零开始的元素地址转换为特定于设备的地址。 然后,它会使用 CDB 生成 SRB 来定位元素并将其发送到系统端口驱动程序。

ChangerSetPosition 在返回到 changer 类驱动程序之前,将 I/O 状态块中的 信息 字段设置为 sizeof(CHANGER_SET_POSITION)。

要求

要求 价值
目标平台 桌面
标头 mcd.h (包括 Mcd.h、Ntddchgr.h)
IRQL PASSIVE_LEVEL

另请参阅

、IOCTL_CHANGER_SET_POSITION

CHANGER_ELEMENT

CHANGER_SET_POSITION