IOCTL_SCSI_GET_CAPABILITIES IOCTL (ntddscsi.h)
基になる SCSI HBA の機能と制限を返します。 最も重要な情報は、 MaximumTransferLength メンバーと AlignmentMask メンバーで返されます。 これらの制限を遵守するには、 IOCTL_SCSI_PASS_THROUGH と IOCTL_SCSI_PASS_THROUGH_DIRECT のクラス ドライバーとユーザーが必要です。
この要求を発行できるのは、レガシ ドライバーだけです。 ポート ドライバーによって作成された PDO に送信された場合、要求は失敗します。
SCSI 機能データを取得するには、プラグ アンド プレイ ドライバーは、ドライバーが追加された各デバイス (つまり、ドライバーが AddDevice 呼び出しを受信した各デバイス) の PDO にデータをSTORAGE_ADAPTER_DESCRIPTORするためのIOCTL_STORAGE_QUERY_PROPERTY要求を発行する必要があります。 レガシ ドライバーは、この要求をポート ドライバーに転送する必要があります。 アダプターの FDO に送信された場合、この要求は失敗します。
メジャー コード
[入力バッファー]
[なし] :
入力バッファーの長さ
[なし] :
出力バッファー
更新IO_SCSI_CAPABILITIES情報は、Irp-AssociatedIrp.SystemBuffer> のバッファーに返されます。
出力バッファーの長さ
I/O スタックの場所にある Parameters.DeviceIoControl.OutputBufferLength は、バッファーのサイズ (バイト単位) を示します。これは、 = sizeof(IO_SCSI_CAPABILITIES) である必要があります>。
ステータス ブロック
[情報] フィールドには、出力バッファーで返されるバイト数が含まれます。 [状態] フィールドは、操作の結果を示します。
要件
要件 | 値 |
---|---|
Header | ntddscsi.h (Ntddscsi.h を含む) |