次の方法で共有


NDIS_RECEIVE_QUEUE_PARAMETERS構造体 (ntddndis.h)

NDIS_RECEIVE_QUEUE_PARAMETERS 構造体には、受信キューの構成パラメーターが含まれています。

構文

typedef struct _NDIS_RECEIVE_QUEUE_PARAMETERS {
  NDIS_OBJECT_HEADER          Header;
  ULONG                       Flags;
  NDIS_RECEIVE_QUEUE_TYPE     QueueType;
  NDIS_RECEIVE_QUEUE_ID       QueueId;
  NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
  GROUP_AFFINITY              ProcessorAffinity;
  ULONG                       NumSuggestedReceiveBuffers;
  ULONG                       MSIXTableEntry;
  ULONG                       LookaheadSize;
  NDIS_VM_NAME                VmName;
  NDIS_QUEUE_NAME             QueueName;
  ULONG                       PortId;
  ULONG                       InterruptCoalescingDomainId;
  NDIS_QOS_SQ_ID              QosSqId;
} NDIS_RECEIVE_QUEUE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_PARAMETERS;

メンバーズ

Header

NDIS_RECEIVE_QUEUE_PARAMETERS 構造体の型、リビジョン、およびサイズ。 このメンバーは、NDIS_OBJECT_HEADER 構造体として書式設定されます。

ミニポート ドライバーは、ヘッダー メンバーをNDIS_OBJECT_TYPE_DEFAULTに設定する必要があります。 NDIS_NIC_SWITCH_CAPABILITIES 構造体のバージョンを指定するには、ドライバーは、ヘッダーリビジョン メンバーを次のいずれかの値に設定する必要があります。

NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3

NDIS 6.50 の QosSqId フィールドを追加しました。

Size メンバーを NDIS_SIZEOF_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3に設定します。

NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_2

NDIS 6.30 の追加メンバーを追加しました。

Size メンバーを NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_2に設定します。

NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_1

NDIS 6.20 の元のバージョン。

Size メンバーを NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_1に設定します。

Flags

次のフラグのビットごとの OR を含む ULONG 値。 次のフラグは、OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID と、OID_RECEIVE_FILTER_QUEUE_PARAMETERS セットおよびクエリ OID に対して有効です。

NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION

ミニポート ドライバーは、NdisMIndicateReceiveNetBufferLists 関数への単一の呼び出しで、このキューのパケットと他の受信キューのネットワーク パケットを混在させる必要があります。

NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED

ネットワーク アダプターは、要求された先読みサイズ以上のオフセットで受信パケットを分割し、DMA を使用して先読みデータと先読み後データを個別の共有メモリ セグメントに転送する必要があります。

手記

NDIS 6.30 以降では、パケット データを個別の先読みバッファーに分割することはサポートされなくなりました。 NDIS 6.30 以降のバージョンをサポートするミニポート ドライバーは、このフラグを無視する必要があります。

次のフラグは、OID_RECEIVE_FILTER_QUEUE_PARAMETERS セット OID と NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS 状態の表示に対して有効です。

NDIS_RECEIVE_QUEUE_PARAMETERS_FLAGS_CHANGED

Flags メンバーの設定が変更されました。

NDIS_RECEIVE_QUEUE_PARAMETERS_PROCESSOR_AFFINITY_CHANGED

ProcessorAffinity メンバーの設定が変更されました。

NDIS_RECEIVE_QUEUE_PARAMETERS_SUGGESTED_RECV_BUFFER_NUMBERS_CHANGED

メンバーの NumSuggestedReceiveBuffers 設定が変更されました。

NDIS_RECEIVE_QUEUE_PARAMETERS_NAME_CHANGED

QueueName メンバーの設定が変更されました。

手記

ドライバーは、NDIS_RECEIVE_QUEUE_PARAMETERS_CHANGE_MASK 定義と Flags メンバーの値の間でビットごとの AND 操作を実行することによって、変更された受信キュー パラメーターを決定します。 結果が 0 の場合、受信キュー パラメーターは変更されていません。

QueueType

受信キューの種類を指定する NDIS_RECEIVE_QUEUE_TYPE 列挙値。

QueueId

受信キュー識別子を含む NDIS_RECEIVE_QUEUE_ID 型の値。 この識別子は、0 からネットワーク アダプターがサポートするキューの数までの整数値です。 NDIS_DEFAULT_RECEIVE_QUEUE_ID の値は、既定の受信キューを指定します。

QueueGroupId

このメンバーは NDIS 用に予約されています。

ProcessorAffinity

このキューに関連付けることができる CPU のグループ番号とビットマップを指定する GROUP_AFFINITY 値。 少なくとも 1 つのプロセッサを指定する必要があります。 したがって、値を 0 にすることはできません。

NumSuggestedReceiveBuffers

キューをサポートするためにネットワーク アダプターが使用する必要がある受信バッファーの数の推奨値を含む ULONG 値。 この数は、ミニポート ドライバーが使用可能なリソースに対して、またはネットワーク アダプターが他のキューに使用する数に比例して調整できます。 たとえば、実際の受信バッファーの数は、この推奨値の 2 倍または半分にすることができます。

MSIXTableEntry

このメンバーは NDIS 用に予約されています。

LookaheadSize

このキューの先読みサイズ要件のサイズ (バイト単位) の ULONG 値。 VM キューで先読みをサポートするネットワーク アダプターは、受信パケットを要求された先読みサイズ以上のオフセットで分割し、DMA を使用して先読みデータと先読み後データを共有メモリ セグメントを分離します。 LookaheadSize が 0 の場合、ミニポート ドライバーはパケットを分割できません。

LookaheadSize は、NDIS が フラグ メンバーの NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED フラグを設定するときに有効です。 つまり、ミニポート ドライバーは、フラグも設定されている場合、指定した先読みサイズでパケットを分割する必要があります。 フラグがクリアされている場合、LookaheadSize 0 以外の値は無効です。

手記

NDIS 6.30 以降では、パケット データを個別の先読みバッファーに分割することはサポートされなくなりました。 このメンバーの値は 0 である必要があります。

VmName

ユーザーが読み取った仮想マシンの説明を含む NDIS_VM_NAME 値。

QueueName

ユーザーが読み取るキューの説明を含む NDIS_QUEUE_NAME 値。

PortId

VM キューが接続されている Hyper-V 拡張可能スイッチ上のポートの一意識別子を含む ULONG 値。

InterruptCoalescingDomainId

このメンバーは NDIS 用に予約されています。

QosSqId

仮想マシン キュー (VMQ) をスケジューラ キュー (SQ) に関連付けます。 SQ 関連付けがない場合は、このフィールド ゼロ に設定します。 NDIS_QOS_SQ_IDの詳細については、OID_QOS_OFFLOAD_CREATE_SQを参照してください。

従来の VMQ に対するハードウェアサービス品質 (QoS) のサポートは必要ありません。 ミニポート ドライバーは、QosSqId が 0 以外の場合 NDIS_STATUS_NOT_SUPPORTEDを返す可能性があります。

備考

NDIS_RECEIVE_QUEUE_PARAMETERS 構造体は、OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID と OID_RECEIVE_FILTER_QUEUE_PARAMETERS OID で使用されます。

NDIS 6.30 では、NDIS_RECEIVE_QUEUE_PARAMETERS 構造は NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS 状態表示でも使用されます。

必要条件

要件 価値
サポートされる最小クライアント NDIS 6.20 以降でサポートされています。
サポートされる最小サーバー Windows Server 2022
ヘッダー ntddndis.h (Ndis.h を含む)

関連項目

NDIS_OBJECT_HEADER

NDIS_RECEIVE_QUEUE_TYPE

NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS

NdisMIndicateReceiveNetBufferLists

OID_RECEIVE_FILTER_ALLOCATE_QUEUE

OID_RECEIVE_FILTER_QUEUE_PARAMETERS