次の方法で共有


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
ヘッダー ndis.h

関連項目

NDIS_PD_QUEUE_TYPE

NdisPDAllocateQueue