次の方法で共有


SCSI_PASS_THROUGH構造体 (ntddscsi.h)

SCSI_PASS_THROUGH構造体は、埋め込み SCSI コマンドをターゲット デバイスに送信するようにポート ドライバーに指示する IOCTL_SCSI_PASS_THROUGH 要求と組み合わせて使用されます。

SCSI ポート ドライバーと SCSI ミニポート ドライバー モデルは、今後変更されたり使用できなくなったりする可能性があります。 代わりに、Storport ドライバー を使用し、Storport ミニポート ドライバー モデル することをお勧めします。
 

構文

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;

メンバーズ

Length

sizeof (SCSI_PASS_THROUGH) の値格納します。

ScsiStatus

HBA またはターゲット デバイスによって返された SCSI 状態を報告します。

PathId

要求の SCSI ポートまたはバスを示します。

TargetId

バス上のターゲット コントローラーまたはデバイスを示します。

Lun

デバイスの論理ユニット番号を示します。

CdbLength

SCSI コマンド記述子ブロックのサイズをバイト単位で示します。

SenseInfoLength

要求検出バッファーのサイズをバイト単位で示します。

DataIn

このフィールドには、次の 3 つの値のいずれかが必要です。

#######

DataTransferLength

データ バッファーのサイズをバイト単位で示します。 多くのデバイスは、定義済みの長さのデータのチャンクを転送します。 DataTransferLength の値は、デバイスで指定される、この定義済みの最小長の整数倍数である必要があります。 アンダーランが発生した場合、ミニポート ドライバーは、実際に転送されたバイト数にこのメンバーを更新する必要があります。

TimeOutValue

ポート ドライバーがタイムアウトと見なす前に要求を実行できる間隔を秒単位で示します。

DataBufferOffset

この構造体の先頭からデータ バッファーへのオフセットを格納します。 オフセットは、デバイスのデータ配置要件を考慮する必要があります。

SenseInfoOffset

この構造体の先頭から要求検出バッファーへのオフセット。

Cdb[16]

ターゲット デバイスに送信する SCSI コマンド記述子ブロックを指定します。

備考

SCSI_PASS_THROUGH構造体は、バッファーに格納されたデバイス制御要求である IOCTL_SCSI_PASS_THROUGHと共に使用されます。 システム メモリ内のバッファリングをバイパスするには、呼び出し元は IOCTL_SCSI_PASS_THROUGH_DIRECTを使用する必要があります。 IOCTL_SCSI_PASS_THROUGH_DIRECT要求を処理する場合、システムはユーザー メモリ内のバッファーをロックダウンし、デバイスはこのメモリに直接アクセスします。

SCSI_PASS_THROUGHのメンバーは、SCSI_REQUEST_BLOCK 構造体のメンバーとほぼ同じです。 DataIn メンバーの値は、SCSI_REQUEST_BLOCKの SrbFlags メンバーに割り当てられたSCSI_IOCTL_DATA_IN、SCSI_IOCTL_DATA_OUT、およびSCSI_IOCTL_DATA_UNSPECIFIEDフラグ 対応します。

必要条件

要件 価値
ヘッダー ntddscsi.h (Ntddscsi.h を含む)

関連項目

IOCTL_SCSI_PASS_THROUGH

IOCTL_SCSI_PASS_THROUGH_DIRECT

SCSI_PASS_THROUGH_DIRECT

SCSI_REQUEST_BLOCK