IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX IOCTL (ntddscsi.h)

Permintaan kode kontrol IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX adalah versi permintaan IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT yang diperluas. Permintaan ini menyediakan dukungan untuk transfer data dua arah dan memungkinkan blok data perintah (CDB) > 16 byte.

Kode kontrol I/O ini memungkinkan aplikasi atau driver kernel untuk mengirim perintah SCSI ke LUN nyata yang ditunjuk. Pembatasan berikut berlaku untuk penggunaan kode kontrol I/O ini:

  • Jika driver kelas untuk Pseudo LUN ada, aplikasi harus mengirim permintaan ke driver kelas tersebut. Dengan demikian, aplikasi dapat mengirim permintaan ini langsung ke MPIO hanya jika tidak ada driver kelas untuk perangkat.
  • Semua permintaan pass-through harus sinkron.
  • Aplikasi tidak memerlukan hak administratif untuk mengirim permintaan pass-through ke perangkat, tetapi mereka harus memiliki akses baca/tulis ke perangkat.
  • Permintaan terdiri dari permintaan pass-through SCSI (dalam struktur SCSI_PASS_THROUGH_DIRECT yang disematkan) serta arahan tertentu.
  • Struktur pass-through SCSI harus memenuhi persyaratan untuk hal tersebut, seperti yang dijelaskan dalam SCSI_PASS_THROUGH_DIRECT.
  • Jika permintaan akan dikirim melalui DSM yang mengklaim LUN nyata, itu harus ditunjukkan. Dalam kasus seperti itu, DSM itu sendiri harus menunjukkan LUN nyata yang sama. Jika tidak, permintaan akan gagal.
  • Permintaan harus menentukan LUN nyata yang terdiri dari Pseudo LUN dalam hal alamat SCSI mantan atau MPIO PathId-nya, tetapi tidak keduanya.

Kode utama

IRP_MJ_DEVICE_CONTROL

Buffer input

Parameters.DeviceIoControl.InputBufferLength menunjukkan ukuran, dalam byte, buffer di Irp-AssociatedIrp.SystemBuffer>.

Panjang buffer input

Buffer harus setidaknya sizeof(MPIO_PASS_THROUGH_PATH_DIRECT_EX) atau, jika dikirim oleh aplikasi 32-bit dalam sistem operasi 64-bit, sizeof(MPIO_PASS_THROUGH_PATH_DIRECT32_EX).

Buffer output

Driver port mengembalikan data request-sense dan data apa pun yang ditransfer dari perangkat ke buffer di Irp-AssociatedIrp.SystemBuffer>.

Panjang buffer output

SenseInfoLength dan DataOutTransferLength dalam struktur SCSI_PASS_THROUGH_DIRECT_EX yang disematkan diperbarui untuk menunjukkan jumlah data yang ditransfer.

Blok status

Bidang Informasi diatur ke jumlah byte yang dikembalikan dalam buffer output di Irp-AssociatedIrp.SystemBuffer>. Bidang Status diatur ke STATUS_SUCCESS, atau mungkin untuk STATUS_BUFFER_TOO_SMALL atau STATUS_INVALID_PARAMETER jika nilai Panjang input dalam SCSI_PASS_THROUGH_DIRECT_EX yang disematkan tidak diatur dengan benar.

Persyaratan

Persyaratan Nilai
Header ntddscsi.h (termasuk Ntddscsi.h)

Lihat juga

MPIO_PASS_THROUGH_PATH_DIRECT_EX

SCSI_PASS_THROUGH_DIRECT_EX