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