struktur SCSI_PASS_THROUGH_EX (ntddscsi.h)
Struktur SCSI_PASS_THROUGH_EX digunakan bersama dengan permintaan IOCTL_SCSI_PASS_THROUGH_EX untuk menginstruksikan driver port untuk mengirim perintah SCSI yang disematkan ke perangkat target. SCSI_PASS_THROUGH_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, gunakan model driver Storport dan driver miniport Storport .
Sintaks
typedef struct _SCSI_PASS_THROUGH_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;
ULONG_PTR DataOutBufferOffset;
ULONG_PTR DataInBufferOffset;
UCHAR Cdb[ANYSIZE_ARRAY];
} SCSI_PASS_THROUGH_EX, *PSCSI_PASS_THROUGH_EX;
Anggota
Version
Versi struktur ini. Atur ke 0.
Length
Ukuran struktur ini, dalam byte. Atur ke sizeof(SCSI_PASS_THROUGH_EX)
.
CdbLength
Ukuran blok deskriptor perintah SCSI di Cdb, dalam byte.
StorAddressLength
Panjangnya, dalam byte, dari struktur alamat perangkat penyimpanan pada offset StorAddressOffset setelah struktur ini.
ScsiStatus
Melaporkan status SCSI yang dikembalikan oleh HBA atau perangkat target.
SenseInfoLength
Ukuran dalam byte buffer request-sense. Anggota ini bersifat opsional dan dapat diatur ke 0.
DataDirection
Menunjukkan apakah perintah SCSI akan membaca atau menulis data. Bidang ini harus menjadi salah satu nilai berikut:
Nilai | Makna |
---|---|
SCSI_IOCTL_DATA_OUT | Menulis data ke perangkat. |
SCSI_IOCTL_DATA_IN | Membaca data dari perangkat. |
SCSI_IOCTL_DATA_UNSPECIFIED | Tidak ada data yang sedang ditransfer. |
SCSI_IOCTL_DATA_BIDIRECTIONAL | Data valid untuk input dan output. |
Reserved
Dicadangkan. Atur ke 0.
TimeOutValue
Menunjukkan interval dalam detik yang dapat dijalankan permintaan sebelum driver port menganggapnya kehabisan waktu.
StorAddressOffset
Lokasi struktur alamat perangkat penyimpanan 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 yang ada.
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.
DataOutBufferOffset
Berisi offset dari awal struktur ini ke buffer data output. Offset harus mematuhi persyaratan penyelarasan data perangkat.
DataInBufferOffset
Berisi offset dari awal struktur ini ke buffer data input. Offset harus mematuhi persyaratan penyelarasan data perangkat.
Cdb[ANYSIZE_ARRAY]
Menentukan blok deskriptor perintah SCSI yang akan dikirim ke perangkat target.
Keterangan
Struktur SCSI_PASS_THROUGH_EX digunakan dengan kode kontrol IOCTL_SCSI_PASS_THROUGH_EX , yang merupakan permintaan kontrol perangkat yang di-buffer. Untuk melewati buffering dalam memori sistem, pemanggil harus menggunakan IOCTL_SCSI_PASS_THROUGH_DIRECT_EX. Saat menangani permintaan IOCTL_SCSI_PASS_THROUGH_DIRECT_EX , sistem mengunci buffer dalam memori pengguna dan perangkat mengakses memori ini secara langsung.
Catatan
Driver yang dijalankan pada Windows versi 64-bit harus menggunakan struktur SCSI_PASS_THROUGH32_EX sebagai jenis data permintaan saat menangani permintaan IOCTL_SCSI_PASS_THROUGH_EX dari proses 32-bit.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 8. |
Header | ntddscsi.h (termasuk Ntddscsi.h) |