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 値以下である必要があります。
CounterHandle
これは、送信キューの送信キュー カウンターと、受信キューの受信キュー カウンターへのハンドルです。キューの作成時に、クライアントは必要に応じてカウンター ハンドルを提供できます。 この場合、および キューの種類に応じて、プロバイダーは、キューでアクティビティが発生した場合にカウンター値を更新する必要があります。 クライアントは、キューが閉じられた後にのみカウンター ハンドルを閉じる役割を担います。
NdisPDOnRssReceiveQueuesルーチンを使用して取得された RSS 受信キューなど、クライアントによって直接作成されないキューの場合、プロバイダーには常にキューに関連付けられたカウンター ハンドルが必要です。 つまり、特定の RSS 受信キューのセットに対して、プロバイダーには受信キューごとに 1 つの専用受信キュー カウンターが必要です。
注釈
この構造体は、8 バイト境界に配置する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 |
サポートされている最小のサーバー | Windows Server 2016 |
Header | ndis.h |