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 |