ChangerMoveMedium 函数 (mcd.h)

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

语法

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 将一个媒体从一个元素移动到另一个元素。

更改器类驱动程序在调用 ChangerMoveMedium之前检查 I/O 堆栈位置中的输入缓冲区长度。 Irp->SystemBuffer 指向指示传输元素、源、目标以及是否翻转介质的 CHANGER_MOVE_MEDIUM 结构。

ChangerMoveMedium 首先验证传输、源和目标元素地址是否有效,然后将从零开始的元素地址转换为特定于设备的地址。 然后,它生成一个包含 CDB 的 SRB,以移动媒体片段并将其发送到系统端口驱动程序。

ChangerMoveMedium 在 I/O 状态块中将 I/O 状态块中的 信息 字段设置为 sizeof(CHANGER_MOVE_MEDIUM),然后再返回到 changer 类驱动程序。

要求

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

另请参阅

CHANGER_ELEMENT

CHANGER_MOVE_MEDIUM

ChangerExchangeMedium