次の方法で共有


IOCTL_SCSI_GET_INQUIRY_DATA IOCTL (ntddscsi.h)

特定の SCSI ホスト バス アダプター (HBA) 上のすべてのデバイスの SCSI 照会データを返します。 IOCTL がユーザー空間で使用されている場合、プログラムは HBA へのハンドルを開いている必要があります。これは、SetupDixxx 呼び出しなど、さまざまな方法で列挙できます。 IOCTL_STORAGE_QUERY_PROPERTYを使用して、HBA 上の特定のデバイスに関する情報を見つけることができます。 必要な出力バッファーのサイズを決定するには、呼び出し元がこの IOCTL 要求をループで送信する必要があります。 ストレージ スタックが IOCTL を拒否し、バッファーが小さすぎることを示すエラー メッセージが表示されるたびに、呼び出し元はバッファー サイズを 2 倍にする必要があります。

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

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

[なし] :

入力バッファーの長さ

[なし] :

出力バッファー

Irp-AssociatedIrp.SystemBuffer> のバッファーには、返された照会データが含まれています。 出力バッファー内の照会データのレイアウトの説明については、「 SCSI_ADAPTER_BUS_INFO」を参照してください。

出力バッファーの長さ

Parameters.DeviceIoControl.OutputBufferLength は、バッファーのサイズ (バイト単位) を示します。バッファーのサイズは>、 = (sizeof(SCSI_ADAPTER_BUS_INFO) + (NumberOfBuses) * sizeof(SCSI_BUS_DATA)) + (InquiryDataSize * NumberOfLUs) である必要があります。ここで、InquiryDataSizeは (sizeof(SCSI_INQUIRY_DATA) - 1 + INQUIRYDATABUFFERSIZE) でアラインメント境界に丸められます。

ステータス ブロック

[情報] フィールドには、出力バッファーに返されるバイト数が含まれます。 [状態] フィールドは、操作の結果を示します。

要件

要件
Header ntddscsi.h (Ntddscsi.h を含む)

こちらもご覧ください

IOCTL_SCSI_MINIPORT

IOCTL_SCSI_PASS_THROUGH

IOCTL_SCSI_PASS_THROUGH_DIRECT

IOCTL_SCSI_RESCAN_BUS

IOCTL_STORAGE_QUERY_PROPERTY

SCSI_ADAPTER_BUS_INFO

SCSI_INQUIRY_DATA

STORAGE_DEVICE_DESCRIPTOR