ChangerMoveMedium 使用 IOCTL 程式代碼處理裝置控制 IRP 的裝置特定層面 IOCTL_CHANGER_MOVE_MEDIUM。
語法
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 將一個媒體從一個元素移到另一個元素。
changer 類別驅動程式會在呼叫 ChangerMoveMedium 之前,先檢查 I/O 堆棧位置中的輸入緩衝區長度。 Irp->SystemBuffer 指向表示傳輸元素、來源、目的地,以及是否要翻轉媒體的 CHANGER_MOVE_MEDIUM 結構。
ChangerMoveMedium 會先驗證傳輸、來源和目的地元素位址是否有效,然後將以零起始的專案位址轉換為裝置特定位址。 然後,它會建置具有CDB的SRB,以行動媒體片段,並將其傳送至系統埠驅動程式。
ChangerMoveMedium 會將 I/O 狀態區塊中的 [資訊] 字段設定為 sizeof(CHANGER_MOVE_MEDIUM),然後再返回 changer 類別驅動程式。
要求
| 要求 | 價值 |
|---|---|
| 目標平臺 | 桌面 |
| 標頭 | mcd.h (包括 Mcd.h、 Ntddchgr.h) |
| IRQL | PASSIVE_LEVEL |