struktur SCSI_PASS_THROUGH_DIRECT_EX (ntddscsi.h)
Struktur SCSI_PASS_THROUGH_DIRECT_EX digunakan bersama dengan permintaan IOCTL_SCSI_PASS_THROUGH_DIRECT_EX untuk menginstruksikan driver port untuk mengirim perintah SCSI yang disematkan ke perangkat target. SCSI_PASS_THROUGH_DIRECT_EX dapat berisi transfer data dua arah dan blok data perintah panjang variabel.
Catatan
Driver port SCSI dan model driver miniport SCSI dapat diubah atau tidak tersedia di masa mendatang. Sebagai gantinya, sebaiknya gunakan driver Storport dan model driver miniport Storport .
Sintaks
typedef struct _SCSI_PASS_THROUGH_DIRECT_EX {
ULONG Version;
ULONG Length;
ULONG CdbLength;
ULONG StorAddressLength;
UCHAR ScsiStatus;
UCHAR SenseInfoLength;
UCHAR DataDirection;
UCHAR Reserved;
ULONG TimeOutValue;
ULONG StorAddressOffset;
ULONG SenseInfoOffset;
ULONG DataOutTransferLength;
ULONG DataInTransferLength;
VOID *DataOutBuffer;
VOID *DataInBuffer;
UCHAR Cdb[ANYSIZE_ARRAY];
} SCSI_PASS_THROUGH_DIRECT_EX, *PSCSI_PASS_THROUGH_DIRECT_EX;
Anggota
Version
Versi struktur ini. Atur ke 0.
Length
Ukuran struktur ini. Atur ke sizeof(SCSI_PASS_THROUGH_DIRECT_EX).
CdbLength
Menunjukkan ukuran dalam byte blok deskriptor perintah SCSI di Cdb.
StorAddressLength
Panjang struktur alamat perangkat penyimpanan pada offset StorAddressOffset setelah struktur ini. Ini diatur ke sizeof(STOR_ADDR_BTL8).
ScsiStatus
Melaporkan status SCSI yang dikembalikan oleh HBA atau perangkat target.
SenseInfoLength
Menunjukkan ukuran dalam byte buffer request-sense. Anggota ini bersifat opsional dan dapat diatur ke 0.
DataDirection
Bidang ini harus memiliki salah satu nilai ini:
Jenis Transfer Data | Makna |
---|---|
SCSI_IOCTL_DATA_IN | Membaca data dari perangkat. |
SCSI_IOCTL_DATA_OUT | Tulis data ke perangkat. |
SCSI_IOCTL_DATA_UNSPECIFIED | Tidak ada data yang ditransfer. |
SCSI_IOCTL_DATA_BIDIRECTIONAL | Data valid untuk input dan output. |
Reserved
Dicadangkan. Atur ke 0.
TimeOutValue
Menunjukkan interval dalam hitungan detik yang dapat dijalankan permintaan sebelum driver port menganggapnya kehabisan waktu.
StorAddressOffset
Lokasi struktur alamat STOR_ADDR_BTL8 perangkat target, dalam byte, dari awal struktur ini.
SenseInfoOffset
Offset dari awal struktur ini ke buffer request-sense. Atur ke 0 jika tidak ada buffer request-sense.
DataOutTransferLength
Menunjukkan ukuran dalam byte buffer data output. Banyak perangkat mentransfer potongan data dengan panjang yang telah ditentukan sebelumnya. Nilai dalam DataOutTransferLength harus merupakan kelipatan integral dari panjang minimum yang telah ditentukan sebelumnya ini yang ditentukan oleh perangkat. Jika underrun terjadi, driver miniport harus memperbarui anggota ini ke jumlah byte yang benar-benar ditransfer. Jika tidak ada buffer data output, anggota ini diatur ke 0.
DataInTransferLength
Menunjukkan ukuran dalam byte buffer data input. Banyak perangkat mentransfer potongan data dengan panjang yang telah ditentukan sebelumnya. Nilai dalam DataInTransferLength harus merupakan kelipatan integral dari panjang minimum yang telah ditentukan sebelumnya ini yang ditentukan oleh perangkat. Jika underrun terjadi, driver miniport harus memperbarui anggota ini ke jumlah byte yang benar-benar ditransfer. Jika tidak ada buffer data input, anggota ini diatur ke 0.
DataOutBuffer
Penunjuk ke buffer data output.
DataInBuffer
Penunjuk ke buffer data input.
Cdb[ANYSIZE_ARRAY]
Menentukan blok deskriptor perintah SCSI yang akan dikirim ke perangkat target.
Keterangan
Struktur SCSI_PASS_THROUGH_DIRECT_EX digunakan dengan IOCTL_SCSI_PASS_THROUGH_DIRECT_EX. Dengan permintaan ini, sistem mengunci buffer dalam memori pengguna dan perangkat mengakses memori ini secara langsung. Untuk buffer ganda yang setara dengan permintaan kontrol perangkat ini, lihat IOCTL_SCSI_PASS_THROUGH_EX dan SCSI_PASS_THROUGH_EX.
Catatan
Driver yang dijalankan pada Windows versi 64 bit harus menggunakan struktur SCSI_PASS_THROUGH_DIRECT32_EX sebagai jenis data permintaan saat menangani permintaan IOCTL_SCSI_PASS_THROUGH_DIRECT_EX dari proses 32 bit.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 8. |
Header | ntddscsi.h (termasuk Ntddscsi.h) |
Lihat juga
IOCTL_SCSI_PASS_THROUGH_DIRECT_EX