NDIS_RECEIVE_FILTER_CAPABILITIES 結構 (ntddndis.h)
NDIS_RECEIVE_FILTER_CAPABILITIES 結構會指定網路適配器的接收篩選功能。
NDIS 接收篩選條件用於下列 NDIS 介面:
-
NDIS 封包聯合。 如需有關如何在此介面中使用接收篩選的詳細資訊,請參閱 管理封包聯合接收篩選。
-
單一根目錄 I/O 虛擬化 (SR-IOV) 。 如需如何在此介面中使用接收篩選的詳細資訊,請參閱 在虛擬埠上設定接收篩選。
-
虛擬機器佇列 (VMQ)。 如需有關如何在此介面中使用接收篩選的詳細資訊,請參閱 設定和清除 VMQ 篩選。
語法
typedef struct _NDIS_RECEIVE_FILTER_CAPABILITIES {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
ULONG EnabledFilterTypes;
ULONG EnabledQueueTypes;
ULONG NumQueues;
ULONG SupportedQueueProperties;
ULONG SupportedFilterTests;
ULONG SupportedHeaders;
ULONG SupportedMacHeaderFields;
ULONG MaxMacHeaderFilters;
ULONG MaxQueueGroups;
ULONG MaxQueuesPerQueueGroup;
ULONG MinLookaheadSplitSize;
ULONG MaxLookaheadSplitSize;
ULONG SupportedARPHeaderFields;
ULONG SupportedIPv4HeaderFields;
ULONG SupportedIPv6HeaderFields;
ULONG SupportedUdpHeaderFields;
ULONG MaxFieldTestsPerPacketCoalescingFilter;
ULONG MaxPacketCoalescingFilters;
ULONG NdisReserved;
} NDIS_RECEIVE_FILTER_CAPABILITIES, *PNDIS_RECEIVE_FILTER_CAPABILITIES;
成員
Header
NDIS_RECEIVE_FILTER_CAPABILITIES 結構的NDIS_OBJECT_HEADER結構。 驅動程式會將 Header 所指定之結構的 Type 成員設定為NDIS_OBJECT_TYPE_DEFAULT。
若要指出 NDIS_RECEIVE_FILTER_CAPABILITIES 結構的版本,驅動程式會將 Revision 成員設定為下列其中一個值:
NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2
已新增
NDIS 6.30 和更新版本的各種成員。
驅動程式會將 Size 成員設定為 NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2。
NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1
NDIS 6.20 的原始版本。
驅動程式會將 Size 成員設定為 NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1。
Flags
旗標的位 OR。 此成員會保留給 NDIS。
EnabledFilterTypes
旗標的位 OR,指定已啟用的接收篩選類型。 下列篩選類型旗標有效。
NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED
指定已啟用 VMQ 篩選。
NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED
指定已啟用 NDIS 封包聯合接收篩選。
EnabledQueueTypes
旗標的位 OR,指定已啟用的接收佇列類型。 下列佇列類型旗標有效。
NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED
指定已啟用虛擬機 (VM) 佇列。 啟用迷你埠驅動程式以使用 VMQ 介面時,會使用 VM 佇列。
NumQueues
網路適配器支援的 VM 佇列數目。
SupportedQueueProperties
指定網路適配器支援的 VM 佇列屬性的位 OR。 定義下列旗標:
NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED
網路適配器會使用 MSI-X 來接收佇列中斷產生。 此旗標是支援 VMQ 或 SR-IOV 介面的迷你埠驅動程式的必要旗標。
NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED
網路適配器提供支援 VM 佇列封包篩選的最低需求。
如果迷你埠驅動程式已啟用使用 VMQ 或 SR-IOV 介面,則必須設定此旗標。
如需 VM 佇列封包篩選 VMQ 需求的詳細資訊,請參閱 設定和清除 VMQ 篩選。
如需 VM 佇列封包篩選 SR-IOV 需求的詳細資訊,請參閱 在虛擬埠上設定接收篩選。
NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED
網路適配器支援在查看頭位移分割傳入接收封包的 VM 佇列。 此位移等於或大於要求的外觀標題大小。 網路適配器會使用 DMA 來傳輸 lookahead 和後置外觀數據,以分隔共用記憶體區段。
NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED
網路適配器支援動態變更下列其中一個處理器親和性屬性的能力:
- VMQ 介面中 VM 佇列的處理器親和性。 處理器親和性會透過 OID_RECEIVE_FILTER_QUEUE_PARAMETERS 的 OID 集合要求來變更。
- 非預設虛擬埠 (VPort) 的處理器親和性,該介面是在 SR-IOV 介面中建立,並附加至 PCI Express (PCIe) 實體函式 (網路適配器的 PF) 。 處理器親和性會透過 OID_NIC_SWITCH_VPORT_PARAMETERS的 OID 集合要求來變更。
NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED
網路配接器支援下列任一專案上接收封包的中斷聯合:
- VMQ 介面中的多個 VM 佇列。
- 在 SR-IOV 介面中附加至 PF 的多個 VPort。
NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE
指出可用的 VM 佇列數目是負載平衡故障轉移 (LBFO) 小組中任何成員可用的佇列數目下限。 此旗標僅適用於 LBFO 篩選。 此旗標未針對迷你埠設定。
NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE
指出可用的 VM 佇列數目是 LBFO 小組每個成員可用的所有佇列總和。 此旗標僅適用於 LBFO 篩選。 此旗標未針對迷你埠設定。
NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE
網路適配器支援 NDIS 封包聯合。 只有網路適配器的預設接收佇列才支援封包聯合。 此接收佇列的標識碼為 NDIS_DEFAULT_RECEIVE_QUEUE_ID。
SupportedFilterTests
指定迷你埠驅動程式所支援之測試作業的位 OR。 定義下列旗標:
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED
網路適配器支持測試選取的標頭字段,以判斷它是否等於指定的值。
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED
網路適配器支援遮罩 (,也就是選取標頭欄位的位 AND) ,以判斷結果是否等於指定的值。
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED
網路適配器支持測試選取的標頭欄位,以判斷它是否不等於指定的值。
SupportedHeaders
旗標的位 OR,指定迷你埠驅動程式可以檢查的網路封包標頭類型。 定義下列旗標:
NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED
網路適配器可以檢查網路封包的 MAC) 標頭 (媒體存取控制。 SupportedMacHeaderFields 成員會從可以檢查的 MAC 標頭定義各種欄位。
NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED
網路適配器可以檢查網路封包的 ARP) 標頭 (位址解析通訊協定。 SupportedArpHeaderFields 成員會從可檢查的 ARP 標頭定義各種字段。
NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED
網路適配器可以檢查網路封包的IP第4版 (IPv4) 標頭。 SupportedIPv4HeaderFields 成員會從可檢查的 IPv4 標頭定義各種字段。
NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED
網路適配器可以檢查網路封包的IP第6版 (IPv6) 標頭。 SupportedIPv6HeaderFields 成員會從可檢查的 IPv6 標頭定義各種字段。
NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED
網路適配器可以檢查網路封包 (UDP) 標頭的用戶數據報通訊協定。 SupportedIPv6HeaderFields 成員會定義可從 UDP 標頭檢查的各種字段。
SupportedMacHeaderFields
旗標的位 OR,指定迷你埠驅動程式可以檢查的 MAC 標頭字段類型。 已定義下列旗標:
NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED
網路適配器支持根據 MAC 標頭中的目的地 MAC 位址來檢查和篩選。
NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED
網路適配器支持根據 MAC 標頭中的來源 MAC 位址來檢查和篩選。
NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED
網路適配器支援以 MAC 標頭中的 EtherType 識別碼為基礎的檢查和篩選。 例如,IPv4 封包的 EtherType 識別符0x0800。
NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED
網路適配器支持根據 MAC 標頭中的 VLAN 識別碼來檢查和篩選。
NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED
網路適配器支持根據 MAC 標頭中優先順序標籤的檢查和篩選。
NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED
網路適配器支持根據 802.3 MAC 標頭中 IEEE 802.2 子網存取通訊協定的封包類型字段, (SNAP) 標頭來檢查和篩選。
MaxMacHeaderFilters
迷你埠驅動程序支援的 MAC 標頭篩選數目上限。
MaxQueueGroups
此成員保留給 NDIS。
MaxQueuesPerQueueGroup
此成員保留給 NDIS。
MinLookaheadSplitSize
網路適配器支持尋找封包緩衝區的最小大小,以位元組為單位。
MaxLookaheadSplitSize
網路適配器支持尋找封包緩衝區的大小上限,以位元組為單位。
SupportedARPHeaderFields
旗標的位 OR,指定迷你埠驅動程式可以檢查的 ARP 標頭字段類型。 已定義下列旗標:
NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED
網路適配器支援在ARP作業欄位上進行接收篩選。
NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED
網路適配器支援在 [SPA) ] 欄位 (ARP 來源通訊協定地址上進行接收篩選。
NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED
網路適配器支援在 [ARP 目標通訊協定位址] ([TPA) ] 欄位上進行接收篩選。
SupportedIPv4HeaderFields
一個字節 OR 的旗標,指定迷你埠驅動程式可以檢查的 IPv4 標頭欄位類型。 已定義下列旗標:
NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED
網路適配器支援在 [IPv4 通訊協定] 欄位上進行接收篩選。
SupportedIPv6HeaderFields
旗標的位 OR,指定迷你埠驅動程式可以檢查的 IPv6 標頭字段類型。 已定義下列旗標:
NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED
網路適配器支援在 [IPv6 通訊協定] 欄位上進行接收篩選。
SupportedUdpHeaderFields
旗標的位 OR,指定迷你埠驅動程式可以檢查的 IPv6 標頭字段類型。 已定義下列旗標:
NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED
網路適配器支援 UDP 目的地埠欄位上的接收篩選。
MaxFieldTestsPerPacketCoalescingFilter
可以針對單一封包聯合篩選器指定的封包標頭字段測試數目上限。 如需封包聯合的詳細資訊,請參閱 NDIS 封包聯合。
MaxPacketCoalescingFilters
網路適配器支援的封包聯合接收篩選器數目上限。
NdisReserved
保留的。 設定為 0。
備註
NDIS_RECEIVE_FILTER_CAPABILITIES 結構用於的 ReceiveFilterCapabilities 成員中 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES, NDIS_FILTER_ATTACH_PARAMETERS,以及 NDIS_BIND_PARAMETERS 結構和的傳回結果 OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES OID 查詢。
只有當迷你埠驅動程式啟用使用 VMQ 或 SR-IOV 介面時, NDIS_RECEIVE_FILTER_CAPABILITIES 結構的許多成員和旗標設定才有效。 迷你埠驅動程式可透過標準化 INF 關鍵詞使用這些介面。 如需詳細資訊,請參閱 處理 SR-IOV、VMQ 和 RSS 標準化 INF 關鍵詞。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.20 和更新版本支援。 |
標頭 | ntddndis.h (包含 Ndis.h) |
另請參閱
NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應