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