共用方式為


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