Bagikan melalui


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)

Lihat juga

IOCTL_SCSI_PASS_THROUGH

IOCTL_SCSI_PASS_THROUGH_EX

SCSI_PASS_THROUGH