共用方式為


ChangerExchangeMedium 函式 (mcd.h)

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

語法

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 將某個媒體從來源元素移至一個目的地,以及從該目的地移至另一個目的地。 來源和第二個目的地通常相同,導致媒體的簡單交換。

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

changer 類別驅動程式會先檢查 I/O 堆棧位置中的輸入緩衝區長度,再呼叫迷你類別驅動程式的 ChangerExchangeMedium 例程。 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