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

IOCTL_SCSI_PASS_THROUGH_DIRECT_EX

SCSI_PASS_THROUGH_DIRECT

STOR_ADDR_BTL8