NDIS_RECEIVE_QUEUE_PARAMETERS結構 (ntddndis.h)
NDIS_RECEIVE_QUEUE_PARAMETERS 結構包含接收佇列的組態參數。
語法
typedef struct _NDIS_RECEIVE_QUEUE_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
NDIS_RECEIVE_QUEUE_TYPE QueueType;
NDIS_RECEIVE_QUEUE_ID QueueId;
NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
GROUP_AFFINITY ProcessorAffinity;
ULONG NumSuggestedReceiveBuffers;
ULONG MSIXTableEntry;
ULONG LookaheadSize;
NDIS_VM_NAME VmName;
NDIS_QUEUE_NAME QueueName;
ULONG PortId;
ULONG InterruptCoalescingDomainId;
NDIS_QOS_SQ_ID QosSqId;
} NDIS_RECEIVE_QUEUE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_PARAMETERS;
成員
Header
NDIS_RECEIVE_QUEUE_PARAMETERS 結構的型別、修訂和大小。 此成員的格式為 NDIS_OBJECT_HEADER 結構。
迷你埠驅動程序必須將 標頭 的 Type 成員設定為 NDIS_OBJECT_TYPE_DEFAULT。 若要指定 NDIS_NIC_SWITCH_CAPABILITIES 結構的版本,驅動程式必須將 Revision member of Header 設定為下列其中一個值:
NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3
已針對 NDIS 6.50 新增 QosSqId 字段。
將 Size 成員設定為 NDIS_SIZEOF_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3。
NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_2
已新增 NDIS 6.30 的其他成員。
將 Size 成員設定為 NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_2。
NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_1
NDIS 6.20 的原始版本。
將 Size 成員設定為 NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_1。
Flags
ULONG 值,其中包含下列旗標的位 OR。 下列旗標適用於 OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID 和 OID_RECEIVE_FILTER_QUEUE_PARAMETERS 集和查詢 OID:
NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION
迷你埠驅動程式不得將其他接收佇列的網路封包與其他接收佇列的封包混合在對 NdisMIndicateReceiveNetBufferLists 函式的單一呼叫中。
NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED
網路適配器必須分割位移等於或大於所要求外觀大小的接收封包,並使用 DMA 來傳輸 lookahead 數據和查閱後的數據,以分隔共用記憶體區段。
注意
從 NDIS 6.30 開始,不再支援將封包數據分割成個別的外觀緩衝區。 支援 NDIS 6.30 或更新版本的迷你埠驅動程序必須忽略此旗標。
下列旗標適用於 OID_RECEIVE_FILTER_QUEUE_PARAMETERS 集 OID 和 NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS 狀態指示:
NDIS_RECEIVE_QUEUE_PARAMETERS_FLAGS_CHANGED
旗標 成員中的設定已變更。
NDIS_RECEIVE_QUEUE_PARAMETERS_PROCESSOR_AFFINITY_CHANGED
ProcessorAffinity 成員中的設定已變更。
NDIS_RECEIVE_QUEUE_PARAMETERS_SUGGESTED_RECV_BUFFER_NUMBERS_CHANGED
NumSuggestedReceiveBuffers 成員中的設定已變更。
NDIS_RECEIVE_QUEUE_PARAMETERS_NAME_CHANGED
QueueName 成員中的設定已變更。
注意
驅動程式會藉由在 NDIS_RECEIVE_QUEUE_PARAMETERS_CHANGE_MASK 定義與 旗標 成員中的值之間執行位 AND 作業,來判斷哪些接收佇列參數已變更。 如果結果為零,則不會變更任何接收佇列參數。
QueueType
指定接收佇列類型的 NDIS_RECEIVE_QUEUE_TYPE 列舉值。
QueueId
包含接收佇列標識碼的 NDIS_RECEIVE_QUEUE_ID 型別值。 此標識碼是介於零和網路適配器所支援佇列數目之間的整數值。 NDIS_DEFAULT_RECEIVE_QUEUE_ID 的值會指定預設接收佇列。
QueueGroupId
此成員保留給 NDIS。
ProcessorAffinity
GROUP_AFFINITY 值,指定此佇列可以關聯的組號和 CPU 位陣圖。 至少必須指定一個處理器。 因此,值不得為零。
NumSuggestedReceiveBuffers
ULONG 值,其中包含網路適配器應該用來支援佇列之接收緩衝區數目的建議值。 這個數位可以相對於迷你埠驅動程式可用的資源,或與網路適配器用於其他佇列所使用的數位成比例來調整。 例如,實際接收緩衝區數目可以是這個建議值的兩倍或一半。
MSIXTableEntry
此成員保留給 NDIS。
LookaheadSize
此佇列外觀大小需求的 ULONG 值,以位元組為單位。 在 VM 佇列中支援 lookahead 的網路適配器會分割接收的封包,其位移等於或大於要求的外觀大小,並使用 DMA 來傳輸 lookahead 數據和後置數據來分隔共用記憶體區段。 如果 lookaheadSize 為零,則迷你埠驅動程式不得分割封包。
當 NDIS 在 Flags 成員中設定 NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED 旗標時,LookaheadSize 有效。 也就是說,如果旗標也已設定,迷你埠驅動程序必須在指定的外觀大小分割封包。 如果旗標是清楚的,LookaheadSize 的非零值無效。
注意
從 NDIS 6.30 開始,不再支援將封包數據分割成個別的外觀緩衝區。 這個成員的值必須是零。
VmName
NDIS_VM_NAME 值,其中包含使用者讀取之虛擬機的描述。
QueueName
NDIS_QUEUE_NAME 值,其中包含用戶讀取的佇列描述。
PortId
ULONG 值,其中包含連結 VM 佇列之 Hyper-V 可延伸交換器上埠的唯一標識符。
InterruptCoalescingDomainId
此成員保留給 NDIS。
QosSqId
將虛擬機佇列 (VMQ) 與排程器佇列 (SQ) 產生關聯。 將此欄位設定為沒有 SQ 關聯 零。 如需 NDIS_QOS_SQ_ID的詳細資訊,請參閱 OID_QOS_OFFLOAD_CREATE_SQ。
不需要舊版 VMQ 的硬體服務品質 (QoS) 支援。 如果 QosSqId 非零,迷你埠驅動程式可能會傳回NDIS_STATUS_NOT_SUPPORTED。
言論
NDIS_RECEIVE_QUEUE_PARAMETERS 結構用於 OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID 和 OID_RECEIVE_FILTER_QUEUE_PARAMETERS OID。
在 NDIS 6.30 中,NDIS_RECEIVE_QUEUE_PARAMETERS 結構也會用於 NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS 狀態指示中。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | NDIS 6.20 和更新版本支援。 |
支援的最低伺服器 | Windows Server 2022 |
標頭 | ntddndis.h (包括 Ndis.h) |
另請參閱
NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS
NdisMIndicateReceiveNetBufferLists