Fungsi ChangerExchangeMedium (mcd.h)

ChangerExchangeMedium menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_EXCHANGE_MEDIUM.

Sintaks

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

Parameter

[in] DeviceObject

Arahkan ke objek perangkat yang mewakili pengubah.

[in] Irp

Arahkan ke IRP.

Mengembalikan nilai

Jika pengubah mendukung pertukaran media, ChangerExchangeMedium mengembalikan status yang dikembalikan oleh driver port sistem, atau salah satu nilai berikut:

STATUS_SUCCESS

STATUS_DESTINATION_ELEMENT_FULL

STATUS_INVALID_ELEMENT_ADDRESS

STATUS_SOURCE_ELEMENT_EMPTY

Jika pengubah tidak mendukung pertukaran media, ChangerExchangeMedium mengembalikan STATUS_INVALID_DEVICE_REQUEST.

Keterangan

Rutinitas ini diperlukan.

ChangerExchangeMedium memindahkan sepotong media dari elemen sumber ke satu tujuan dan dari tujuan tersebut ke tujuan lain. Sumber dan tujuan kedua sering kali sama, menghasilkan pertukaran media yang sederhana.

Bendera CHANGER_EXCHANGE_MEDIA di Fitur0 dari struktur GET_CHANGER_PARAMETERS menunjukkan apakah pengubah mendukung fungsionalitas ini. Pengubah yang mendukung pertukaran media biasanya memiliki dua mekanisme pemilih pada satu elemen transportasi, atau setidaknya dua elemen transportasi. Pengubah yang memiliki mekanisme pemilih tunggal mungkin mendukung pertukaran media melalui emulasi perintah.

Driver kelas changer memeriksa panjang buffer input di lokasi tumpukan I/O sebelum memanggil rutinitas ChangerExchangeMedium driver miniclass. Irp-SystemBuffer> menunjuk ke struktur CHANGER_EXCHANGE_MEDIUM sebagai parameter input yang menunjukkan elemen transportasi dan tujuan yang akan diatur.

ChangerExchangeMedium pertama-tama memverifikasi bahwa alamat elemen transportasi, sumber, dan tujuan valid, lalu mengonversi alamat elemen berbasis nol ke alamat elemen khusus perangkat. Kemudian membangun SRB dengan CDB untuk bertukar media dan mengirimkannya ke driver port sistem.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header mcd.h (termasuk Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

Lihat juga

CHANGER_ELEMENT

CHANGER_EXCHANGE_MEDIUM

ChangerMoveMedium

GET_CHANGER_PARAMETERS