次の方法で共有


NDIS_PD_QUEUE_PARAMETERS 構造体 (ndis.h)

この構造体は、キュー ルーチンのいずれかを呼び出すときに、送信キューまたは受信キューのパラメーターを保持するために使用されます。

構文

typedef struct _NDIS_PD_QUEUE_PARAMETERS {
  NDIS_OBJECT_HEADER     Header;
  ULONG                  Flags;
  NDIS_PD_QUEUE_TYPE     QueueType;
  ULONG                  QueueSize;
  ULONG                  ReceiveDataLength;
  GROUP_AFFINITY         Affinity;
  ULONG                  TrafficClassId;
  ULONG                  MaximumPartialBufferCount;
  NDIS_PD_COUNTER_HANDLE CounterHandle;
} NDIS_PD_QUEUE_PARAMETERS;

メンバー

Header

NDIS_PD_CONFIG構造体のNDIS_OBJECT_HEADER構造体。 この構造体のメンバーを次のように設定します。

  • = NDIS_OBJECT_TYPE_DEFAULT
  • リビジョン = NDIS_PD_QUEUE_PARAMETERS_REVISION_1
  • サイズ = NDIS_SIZEOF_PD_QUEUE_PARAMETERS_REVISION_1

Flags

このメンバーは予約されており、プロバイダーによって 0 に設定されている必要があります。

QueueType

キューの種類。 詳細については、「 NDIS_PD_QUEUE_TYPE」を参照してください。

QueueSize

このキューが保持できる PD_BUFFER 構造体の最大数は、常にフォームの数 (2^k)-1 (63、127、255、511、1023 など) と等しくなります。 これは、効率的な循環インデックスの算術演算に役立ちます。

ReceiveDataLength

データ の最小PD_BUFFER 長。

Affinity

プロセッサ アフィニティは、パフォーマンスの最適化のためのプロバイダーへのヒントです。 プラットフォームは、主に、このマスクによって示されるプロセッサでキューを処理します。 プロバイダーは、この値を、OID_GEN_RECEIVE_SCALE_PARAMETERSから構成された間接参照テーブルから派生したプロセッサ コアに設定する必要があります

TrafficClassId

MaximumPartialBufferCount

送信キューの場合、これは、クライアントが 1 つの L2 パケットを形成するために一緒にチェーンできる部分 PD_BUFFER 構造体の最大数です。 この値は、 NDIS_PD_CAPABILITIES 構造体の MaximumTxPartialBufferCount 値と等しい必要があります。

受信キューの場合、これは、プロバイダーが一緒にチェーンして RSC を使用して 1 つの大きな L2 パケットを形成 できる部分PD_BUFFER 構造体の最大数です。 これは、 NDIS_PD_CAPABILITIES 構造体の MaximumRxPartialBufferCount 値以下である必要があります。

メモ クライアントは、部分フラグ を持つPD_BUFFER 構造体を受信キューにポストすることはありません。 クライアントは、データの開始位置から開始して、少なくとも MTU サイズの領域を持つ PD_BUFFER構造体を 常にポストする必要があります。 プロバイダーは、RSC の場合にのみチェーンを実行します。 一部のプロバイダーでは RSC チェーンをサポートできない場合があります。これらのプロバイダーは、 NDIS_PD_CAPABILITIES 構造体の MaximumRxPartialBufferCount メンバーに値 1 を設定します。
 

CounterHandle

これは、送信キューの送信キュー カウンターと、受信キューの受信キュー カウンターへのハンドルです。キューの作成時に、クライアントは必要に応じてカウンター ハンドルを提供できます。 この場合、および キューの種類に応じて、プロバイダーは、キューでアクティビティが発生した場合にカウンター値を更新する必要があります。 クライアントは、キューが閉じられた後にのみカウンター ハンドルを閉じる役割を担います。

NdisPDOnRssReceiveQueuesルーチンを使用して取得された RSS 受信キューなど、クライアントによって直接作成されないキューの場合、プロバイダーには常にキューに関連付けられたカウンター ハンドルが必要です。 つまり、特定の RSS 受信キューのセットに対して、プロバイダーには受信キューごとに 1 つの専用受信キュー カウンターが必要です。

注釈

この構造体は、8 バイト境界に配置する必要があります。

要件

要件
サポートされている最小のクライアント Windows 10
サポートされている最小のサーバー Windows Server 2016
Header ndis.h

こちらもご覧ください

NDIS_PD_QUEUE_TYPE

NdisPDAllocateQueue