NDK_ADAPTER_INFO 構造体 (ndkinfo.h)
NDK_ADAPTER_INFO構造体は、NDK アダプターの制限と機能に関する情報を指定します。
構文
typedef struct _NDK_ADAPTER_INFO {
NDK_VERSION Version;
UINT32 VendorId;
UINT32 DeviceId;
SIZE_T MaxRegistrationSize;
SIZE_T MaxWindowSize;
ULONG FRMRPageCount;
ULONG MaxInitiatorRequestSge;
ULONG MaxReceiveRequestSge;
ULONG MaxReadRequestSge;
ULONG MaxTransferLength;
ULONG MaxInlineDataSize;
ULONG MaxInboundReadLimit;
ULONG MaxOutboundReadLimit;
ULONG MaxReceiveQueueDepth;
ULONG MaxInitiatorQueueDepth;
ULONG MaxSrqDepth;
ULONG MaxCqDepth;
ULONG LargeRequestThreshold;
ULONG MaxCallerData;
ULONG MaxCalleeData;
ULONG AdapterFlags;
NDK_RDMA_TECHNOLOGY RdmaTechnology;
} NDK_ADAPTER_INFO;
メンバー
Version
NDK インターフェイスのメジャー バージョンとマイナー バージョン (NDK_VERSION)。
VendorId
ベンダーの組織の一意識別子 (OUI)。
DeviceId
ベンダー定義のデバイス識別子。
MaxRegistrationSize
アダプターがアドレス指定できる 1 つのメモリ登録の最大サイズ (バイト単位)。
MaxWindowSize
1 つのメモリ ウィンドウの最大サイズ (バイト単位)。
FRMRPageCount
アダプターが最大数の FRMR をサポートする高速レジスタ メモリ領域 ( FRMR ) サイズ (PAGE_SIZE ページ)。 プロバイダーは、少なくとも 16 個の FRMR ページをサポートする必要があります。 この値は通常、FRMR ベースの同時 I/O 操作を最適化する FRMR サイズとして上位レイヤーで使用されます。 そのため、16 より大きい値のアドバタイズは、そのサイズでサポートされている FRMR の合計数が結果として有意に減少しない場合にのみ行う必要があります。
MaxInitiatorRequestSge
イニシエーター キュー経由の 1 つの要求で指定できるスキャッター ギャザー エントリ (SG) の最大数。
MaxReceiveRequestSge
受信キュー経由で 1 つの要求で指定できる SES の最大数。
MaxReadRequestSge
読み取り要求で指定できる SES の最大数。
MaxTransferLength
1 回の送信、受信、読み取り、または書き込み要求内のすべての SG で参照できる最大の合計長。
MaxInlineDataSize
1 回の送信または書き込み要求で送信できるインライン データの最大量 (バイト単位)。
MaxInboundReadLimit
各 QP の進行中の受信読み取り操作の最大数。
MaxOutboundReadLimit
各 QP の進行中の送信読み取り操作の最大数。
MaxReceiveQueueDepth
各受信キューの未処理の要求の最大数。
MaxInitiatorQueueDepth
各イニシエーター キューに対する未処理の要求の最大数。
MaxSrqDepth
各共有受信キュー (SRQ) に対する未処理の要求の最大数。 値が 0 の場合、SRQ はサポートされません。
MaxCqDepth
各完了キュー (CQ) の完了エントリの最大数。
LargeRequestThreshold
読み取り操作と書き込み操作を超えるデータ サイズ ヒント (バイト単位) では、送受信操作よりも優れた結果が得られます。
MaxCallerData
接続要求で送信できるプライベート データの最大サイズ (バイト単位)。
MaxCalleeData
承諾要求または拒否要求で送信できるプライベート データの最大サイズ (バイト単位)。
AdapterFlags
アダプターのプロパティを決定するフラグのセット。 現在定義されているフラグは次のとおりです。
値 | 説明 |
---|---|
|
プロバイダーが受信データをコンシューマーのバッファーに順番に書き込むかどうかを設定します。 つまり、コンシューマーのバッファー内の最後のバイト位置は、前のバイト位置の前に更新されないことが保証されます。 |
|
プロバイダーが RDMA 読み取り要求のシンク バッファーに対する特別なアクセス権を必要としない場合に設定します。 このフラグが設定されている場合、RDMA 読み取り要求のシンク バッファーを登録するときに、コンシューマーは NDK_MR_FLAG_RDMA_READ_SINK または NDK_OP_FLAG_RDMA_READ_SINK フラグを使用する必要はありません。 コンシューマーは、RDMA 読み取りシンク バッファーとして( NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN 関数で取得されたトークンを使用して) 論理アドレス マッピングを直接使用することもできます。 これは、RDMA の書き込み、送信、および受信操作のためのローカル バッファーへのアクセスに似ています。 |
|
プロバイダーが各完了キュー (CQ) のプログラムによって制御される割り込みモデレーションをサポートするかどうかを設定します。 このフラグを設定すると、NDK コンシューマーは 、NDK_CQ_DISPATCHテーブルの NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION 関数を使用できます。 |
|
プロバイダーが複数の実行エンジンとの複数の接続の同時処理をサポートする場合に設定します。 このフラグが設定されている場合、アダプターで複数の接続を同時に使用する NDK コンシューマーは、1 つの接続よりも優れたパフォーマンスを提供する可能性があります。 |
|
プロバイダーが読み取り要求の完了時に NdkRead (NDK_FN_READ) 関数に渡される最初のNDK_SGEで指定されたローカル トークンの無効化をサポートする場合に設定します。
メモ この値は、NDKPI 1.2 (Windows Server 2012 R2) 以降でのみサポートされます。 |
|
プロバイダーが CQ オブジェクトのサイズ変更をサポートしているかどうかを設定します。 このフラグが設定されていない場合、コンシューマーは CQ のサイズ変更を試みてはなりません。 |
|
プロバイダーがループバック接続をサポートするかどうかを設定します。 つまり、特定の RNIC 上のローカル ネットワーク アドレスから同じ RNIC 上の同じローカル アドレスへのループバックです。 |
RdmaTechnology
解説
NDK_FN_QUERY_ADAPTER_INFO関数は、アダプターのさまざまな制限と機能に関する情報を含むNDK_ADAPTER_INFOを取得します。
要件
サポートされている最小のクライアント | サポートされていません。NDIS 6.30 以降でサポートされています。 |
サポートされている最小のサーバー | Windows Server 2012 |
Header | ndkinfo.h (Ndkpi.h を含む) |
関連項目
NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION