IOCTL_SCSI_GET_CAPABILITIES IOCTL (ntddscsi.h)

基になる SCSI HBA の機能と制限を返します。 最も重要な情報は、 MaximumTransferLength メンバーと AlignmentMask メンバーで返されます。 これらの制限を遵守するには、 IOCTL_SCSI_PASS_THROUGHIOCTL_SCSI_PASS_THROUGH_DIRECT のクラス ドライバーとユーザーが必要です。

この要求を発行できるのは、レガシ ドライバーだけです。 ポート ドライバーによって作成された PDO に送信された場合、要求は失敗します。

SCSI 機能データを取得するには、プラグ アンド プレイ ドライバーは、ドライバーが追加された各デバイス (つまり、ドライバーが AddDevice 呼び出しを受信した各デバイス) の PDO にデータをSTORAGE_ADAPTER_DESCRIPTORするためのIOCTL_STORAGE_QUERY_PROPERTY要求を発行する必要があります。 レガシ ドライバーは、この要求をポート ドライバーに転送する必要があります。 アダプターの FDO に送信された場合、この要求は失敗します。

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

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

[なし] :

入力バッファーの長さ

[なし] :

出力バッファー

更新IO_SCSI_CAPABILITIES情報は、Irp-AssociatedIrp.SystemBuffer> のバッファーに返されます。

出力バッファーの長さ

I/O スタックの場所にある Parameters.DeviceIoControl.OutputBufferLength は、バッファーのサイズ (バイト単位) を示します。これは、 = sizeof(IO_SCSI_CAPABILITIES) である必要があります>。

ステータス ブロック

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

要件

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

こちらもご覧ください

IO_SCSI_CAPABILITIES