共用方式為


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

對於傳輸佇列,這是客戶端允許鏈結在一起形成單一 L2 封包的部分 PD_BUFFER 結構數目上限。 這個值必須等於 NDIS_PD_CAPABILITIES 結構中的 MaximumTxPartialBufferCount 值。

對於接收佇列,這是允許提供者鏈結在一起以 RSC 形成單一大型 L2 封包的部分 PD_BUFFER 結構數目上限。 這必須小於或等於 NDIS_PD_CAPABILITIES 結構中的 MaximumRxPartialBufferCount 值。

注意 客戶端永遠不會將具有部分旗標 PD_BUFFER 結構張貼到接收佇列。 用戶端一律需要以至少 MTU 大小的空間張貼 PD_BUFFER 結構,從數據開始位置開始。 提供者只會在 RSC 的情況下執行鏈結。 某些提供者可能無法支援 RSC 鏈結,這些提供者會將 1 的值設定為 NDIS_PD_CAPABILITIES 結構中的 MaximumRxPartialBufferCount 成員。
 

CounterHandle

這是傳輸佇列的傳輸佇列計數器,以及接收佇列的接收佇列計數器。在建立佇列期間,用戶端可以選擇性地提供計數器句柄。 在此情況下,和視佇列類型而定,提供者必須更新計數器值,因為活動發生在佇列上。 用戶端只會負責在關閉佇列之後關閉計數器句柄。

對於用戶端未直接建立的佇列,例如使用 NdisPDOnRssReceiveQueues例程取得的 RSS 接收佇列,提供者必須一律具有與佇列相關聯的計數器句柄。 也就是說,針對一組指定的 RSS 接收佇列,提供者必須針對每個接收佇列擁有一個專用的接收佇列計數器。

備註

這個結構必須對齊 8 位元組界限。

規格需求

需求
最低支援的用戶端 Windows 10
最低支援的伺服器 Windows Server 2016
標頭 ndis.h

另請參閱

NDIS_PD_QUEUE_TYPE

NdisPDAllocateQueue