struktur SCSI_PASS_THROUGH (ntddscsi.h)
Struktur SCSI_PASS_THROUGH digunakan bersama dengan permintaan IOCTL_SCSI_PASS_THROUGH untuk menginstruksikan driver port untuk mengirim perintah SCSI yang disematkan ke perangkat target.
Sintaks
typedef struct _SCSI_PASS_THROUGH {
USHORT Length;
UCHAR ScsiStatus;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
UCHAR CdbLength;
UCHAR SenseInfoLength;
UCHAR DataIn;
ULONG DataTransferLength;
ULONG TimeOutValue;
ULONG_PTR DataBufferOffset;
ULONG SenseInfoOffset;
UCHAR Cdb[16];
} SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH;
Anggota
Length
Berisi nilai sizeof(SCSI_PASS_THROUGH).
ScsiStatus
Melaporkan status SCSI yang dikembalikan oleh HBA atau perangkat target.
PathId
Menunjukkan port atau bus SCSI untuk permintaan tersebut.
TargetId
Menunjukkan pengontrol target atau perangkat di bus.
Lun
Menunjukkan nomor unit logis perangkat.
CdbLength
Menunjukkan ukuran dalam byte blok deskriptor perintah SCSI.
SenseInfoLength
Menunjukkan ukuran dalam byte buffer request-sense.
DataIn
Bidang ini harus memiliki salah satu dari tiga nilai:
#######
DataTransferLength
Menunjukkan ukuran dalam byte buffer data. Banyak perangkat mentransfer potongan data dengan panjang yang telah ditentukan sebelumnya. Nilai dalam DataTransferLength 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.
TimeOutValue
Menunjukkan interval dalam hitungan detik yang dapat dijalankan permintaan sebelum driver port menganggapnya kehabisan waktu.
DataBufferOffset
Berisi offset dari awal struktur ini ke buffer data. Offset harus mematuhi persyaratan penyelarasan data perangkat.
SenseInfoOffset
Offset dari awal struktur ini ke buffer request-sense.
Cdb[16]
Menentukan blok deskriptor perintah SCSI yang akan dikirim ke perangkat target.
Keterangan
Struktur SCSI_PASS_THROUGH digunakan dengan IOCTL_SCSI_PASS_THROUGH, yang merupakan permintaan kontrol perangkat yang di-buffer. Untuk melewati buffering dalam memori sistem, pemanggil harus menggunakan IOCTL_SCSI_PASS_THROUGH_DIRECT. Saat menangani permintaan IOCTL_SCSI_PASS_THROUGH_DIRECT, sistem mengunci buffer dalam memori pengguna dan perangkat mengakses memori ini secara langsung.
Anggota SCSI_PASS_THROUGH berkorespondensi kira-kira dengan anggota struktur SCSI_REQUEST_BLOCK . Nilai anggota DataIn sesuai dengan bendera SCSI_IOCTL_DATA_IN, SCSI_IOCTL_DATA_OUT, dan SCSI_IOCTL_DATA_UNSPECIFIED yang ditetapkan untuk anggota SrbFlags dari SCSI_REQUEST_BLOCK.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | ntddscsi.h (termasuk Ntddscsi.h) |