NDIS_RECEIVE_HASH_PARAMETERS 構造体 (ntddndis.h)

NDIS_RECEIVE_HASH_PARAMETERS構造体は、受信ハッシュ計算をサポートするミニポート アダプターの受信ハッシュ パラメーターを指定します。

構文

typedef struct _NDIS_RECEIVE_HASH_PARAMETERS {
  NDIS_OBJECT_HEADER Header;
  ULONG              Flags;
  ULONG              HashInformation;
  USHORT             HashSecretKeySize;
  ULONG              HashSecretKeyOffset;
} NDIS_RECEIVE_HASH_PARAMETERS, *PNDIS_RECEIVE_HASH_PARAMETERS;

メンバー

Header

NDIS_RECEIVE_HASH_PARAMETERS構造体のNDIS_OBJECT_HEADER構造体。 Header が指定する構造体の Type メンバーをNDIS_OBJECT_TYPE_DEFAULTに設定し、Revision メンバーを NDIS_RECEIVE_HASH_PARAMETERS_REVISION_1に、Size メンバーを NDIS_SIZEOF_RECEIVE_HASH_PARAMETERS_REVISION_1に設定します。

Flags

ミニポート ドライバーがハッシュ パラメーターを使用して行う必要があることを示す USHORT 値。 ミニポート ドライバーは、これらのフラグを使用して、変更されたパラメーターをすばやく特定し、それに応じてハッシュ設定を更新できます。

set 要求では、フラグは次のように定義されます。

NDIS_RECEIVE_HASH_FLAG_ENABLE_HASH

このフラグが設定されている場合は、受信したフレームでハッシュ値の計算を有効にし、計算されたハッシュ値をNET_BUFFER_LIST構造体の NetBufferListHashValue OOB 情報に配置します。

このフラグが明確な場合は、受信したフレームのハッシュ値の計算を無効にします。

受信ハッシュ計算が有効になっている場合、ミニポート ドライバーは、このフラグを設定する必要があります。それ以外の場合は、このフラグをクリアする必要があります。

NDIS_RECEIVE_HASH_FLAG_HASH_INFO_UNCHANGED

HashInformation メンバーは変更されていません。 ハッシュ情報には、ハッシュ型とハッシュ関数が含まれます。

このフラグが設定されている場合、NDIS_RECEIVE_HASH_PARAMETERS構造体の HashInformation メンバーは無視する必要があります。

このフラグがクリアされた場合、HashInformation メンバーには、受信したフレームのハッシュ値を計算するためにミニポート ドライバーが使用する必要がある新しい値が含まれています。

NDIS_RECEIVE_HASH_FLAG_HASH_KEY_UNCHANGED

秘密鍵と関連するデータ メンバーは変更されていません。

このフラグが設定されている場合、秘密キーと関連付けられているデータ メンバーは無視する必要があります。

このフラグをクリアすると、秘密キーまたは関連付けられているデータ メンバーが変更され、ミニポート ドライバーは新しい情報を使用する必要があります。

クエリ要求では、フラグは次のように定義されます。

HashInformation

set 要求では、NIC が受信パケットのハッシュ値を計算するために使用するハッシュの種類とハッシュ関数。

クエリ要求で、NIC で使用されているハッシュの種類とハッシュ関数。

上にあるドライバーと NDIS では、 NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC マクロを使用して、ハッシュの種類とハッシュ関数をハッシュ情報に結合し、 HashInformation メンバーを設定します。

ミニポート ドライバーは、 を使用できます。hashInformation からハッシュ型を取得するには、マクロをNDIS_RSS_HASH_TYPE_FROM_HASH_INFOし、マクロNDIS_RSS_HASH_FUNC_FROM_HASH_INFOしてハッシュ関数を取得します。

HashSecretKeySize

ハッシュ関数の秘密鍵配列のサイズ (バイト単位)。 NdisHashFunctionToeplitz の配列のサイズは 40 バイトです。

HashSecretKeyOffset

NDIS_RECEIVE_HASH_PARAMETERS構造体の先頭からのハッシュ関数の秘密鍵配列のオフセット。 このオフセットを使用して、320 ビット (40 バイト) の秘密キーを取得します。

set 要求では、秘密キーには、基になるドライバーが選択する任意のデータを含めることができます。

クエリ要求では、秘密キーには NIC で使用されているデータが含まれます。

注釈

NDIS_RECEIVE_HASH_PARAMETERS構造体は、 OID_GEN_RECEIVE_HASH OID のハッシュ パラメーターを定義します。

メモ プロトコル ドライバーは、RSS を有効にする前に、受信ハッシュ計算を無効にする必要があります。 RSS が有効になっている場合、プロトコル ドライバーは、受信ハッシュ計算を有効にする前に RSS を無効にします。 ミニポート ドライバーは、他のサービスが現在有効になっている場合、受信ハッシュ計算または RSS を有効にする要求に失敗する必要があります。
 
メモ 秘密キーは、NDIS_RECEIVE_HASH_PARAMETERS構造体メンバーの後に追加されます。
 

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
Header ntddndis.h (Ndis.h を含む)

こちらもご覧ください

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC NDIS_RSS_HASH_TYPE_FROM_HASH_INFO

NET_BUFFER_LIST

OID_GEN_RECEIVE_HASH