Fungsi ChangerSetPosition (mcd.h)
ChangerSetPosition menangani aspek khusus perangkat dari IRP kontrol perangkat dengan kode IOCTL IOCTL_CHANGER_SET_POSITION.
Sintaks
NTSTATUS ChangerSetPosition(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
Parameter
[in] DeviceObject
Arahkan ke objek perangkat yang mewakili pengubah.
[in] Irp
Arahkan ke IRP.
Nilai kembali
Jika pengubah mendukung pengaturan posisi elemen transportasi, ChangerSetPosition mengembalikan status yang dikembalikan oleh driver port sistem, atau salah satu nilai berikut:
STATUS_SUCCESS
STATUS_INFO_LENGTH_MISMATCH
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
Jika pengubah tidak mendukung pengaturan posisi elemen transportasi, ChangerSetPosition mengembalikan STATUS_INVALID_DEVICE_REQUEST.
Keterangan
Rutinitas ini diperlukan.
ChangerSetPosition mengatur mekanisme transportasi robotik pengubah ke tujuan yang ditentukan, biasanya untuk mengoptimalkan pemindahan atau pertukaran media dengan terlebih dahulu memposisikan transportasi.
Bendera CHANGER_POSITION_TO_ELEMENT di Fitur0GET_CHANGER_PARAMETERS menunjukkan apakah pengubah mendukung fungsionalitas ini.
Driver kelas changer memeriksa panjang buffer input di lokasi tumpukan I/O sebelum memanggil ChangerSetPosition. Irp-SystemBuffer> menunjuk ke struktur CHANGER_SET_POSITION sebagai parameter input yang menunjukkan elemen transportasi dan tujuan yang akan diatur.
ChangerSetPosition pertama-tama memverifikasi bahwa alamat elemen transportasi dan tujuan valid dan mengonversi alamat elemen berbasis nol ke alamat khusus perangkat. Kemudian membangun SRB dengan CDB untuk memposisikan elemen dan mengirimkannya ke driver port sistem.
ChangerSetPosition mengatur bidang Informasi di blok status I/O ke sizeof(CHANGER_SET_POSITION) sebelum kembali ke driver kelas changer.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | mcd.h (termasuk Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |