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 |
ヘッダー | ndis.h |
関連項目
NdisPDAllocateQueue の