ChangerExchangeMedium 函式 (mcd.h)

ChangerExchangeMedium 會使用 IOCTL 程式代碼 IOCTL_CHANGER_EXCHANGE_MEDIUM來處理裝置控制 IRP 的裝置特定層面。

語法

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

參數

[in] DeviceObject

代表變更器的裝置物件的指標。

[in] Irp

IRP 的指標。

傳回值

如果變更程式支援交換媒體, ChangerExchangeMedium 會傳回系統埠驅動程式所傳回的狀態,或下列其中一個值:

STATUS_SUCCESS

STATUS_DESTINATION_ELEMENT_FULL

STATUS_INVALID_ELEMENT_ADDRESS

STATUS_SOURCE_ELEMENT_EMPTY

如果變更器不支持交換媒體,ChangerExchangeMedium 會傳回STATUS_INVALID_DEVICE_REQUEST。

備註

此例程是必要的。

ChangerExchangeMedium 會將媒體片段從來源元素移至一個目的地,並將該目的地移到另一個目的地。 來源和第二個目的地通常相同,因而產生簡單的媒體交換。

GET_CHANGER_PARAMETERS結構 之 Features0 中的 CHANGER_EXCHANGE_MEDIA 旗標會指出變更器是否支援這項功能。 支援交換媒體的變更器通常會在單一傳輸元素上有兩個選擇器機制,或至少兩個傳輸元素。 具有單一選擇器機制的變更器可透過命令模擬來支援交換媒體。

changer 類別驅動程式會在呼叫迷你類別驅動程式 的 ChangerExchangeMedium 例程之前,先檢查 I/O 堆疊位置中的輸入緩衝區長度。 Irp-SystemBuffer> 指向CHANGER_EXCHANGE_MEDIUM結構做為輸入參數,指出要設定的傳輸專案和目的地。

ChangerExchangeMedium 會先驗證傳輸、來源和目的地元素位址是否有效,然後將以零起始的專案位址轉換為裝置特定的元素位址。 然後,它會使用CDB建置SRB來交換媒體,並將它傳送至系統埠驅動程式。

規格需求

需求
目標平台 桌面
標頭 mcd.h (包括 Mcd.h、Ntddchgr.h)
IRQL PASSIVE_LEVEL

另請參閱

CHANGER_ELEMENT

CHANGER_EXCHANGE_MEDIUM

ChangerMoveMedium

GET_CHANGER_PARAMETERS