将一段媒体从源元素移动到一个目标,将最初在第一个目标中的媒体片段移动到第二个目标。 源和第二个目标通常相同,这实质上交换了两个媒体片段。
主要代码
输入缓冲区
Irp->AssociatedIrp.SystemBuffer 上的缓冲区包含 CHANGER_EXCHANGE_MEDIUM 数据,该数据指示源、目标以及是否应翻转两个媒体(假设设备支持双面媒体)。
输入缓冲区长度
I/O 堆栈位置中的 Parameters.DeviceIoControl.InputBufferLength 指示参数缓冲区的大小(以字节为单位),必须 >= sizeof(CHANGER_EXCHANGE_MEDIUM)。
输出缓冲区
没有。
输出缓冲区长度
没有。
状态块
信息 字段设置为零。 状态 字段设置为STATUS_SUCCESS,或者可能设置为STATUS_DESTINATION_ELEMENT_FULL、STATUS_INFO_LENGTH_MISMATCH、STATUS_INSUFFICIENT_RESOURCES、STATUS_INVALID_DEVICE_REQUEST、STATUS_INVALID_ELEMENT_ADDRESS、STATUS_INVALID_PARAMETER或STATUS_SOURCE_ELEMENT_EMPTY。
要求
| 要求 | 价值 |
|---|---|
| 标头 | ntddchgr.h (包括 Ntddchgr.h) |