NDIS_RECEIVE_FILTER_CAPABILITIES-Struktur (ntddndis.h)

Die NDIS_RECEIVE_FILTER_CAPABILITIES-Struktur gibt die Empfangsfilterfunktionen eines Netzwerkadapters an.

NDIS-Empfangsfilter werden in den folgenden NDIS-Schnittstellen verwendet:

Syntax

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;

Member

Header

Die NDIS_OBJECT_HEADER-Struktur für die NDIS_RECEIVE_FILTER_CAPABILITIES-Struktur . Der Treiber legt das Typelement der Struktur, die Header angibt, auf NDIS_OBJECT_TYPE_DEFAULT fest.

Um die Version der NDIS_RECEIVE_FILTER_CAPABILITIES-Struktur anzugeben, legt der Treiber den Revisionsmember auf einen der folgenden Werte fest:

NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2

Hinzugefügt
verschiedene Member für NDIS 6.30 und höher.

Der Treiber legt das Element Größe auf NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2 fest.

NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1

Ursprüngliche Version für NDIS 6.20.

Der Treiber legt das Element Größe auf NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1 fest.

Flags

Ein bitweises OR von Flags. Dieses Element ist für NDIS reserviert.

EnabledFilterTypes

Ein bitweises OR von Flags, die die Typen von aktivierten Empfangsfiltern angeben. Das folgende Filtertypflag ist gültig.

NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED

Gibt an, dass VMQ-Filter aktiviert sind.

Hinweis Der Miniporttreiber sollte dieses Flag festlegen, wenn der Miniporttreiber für die Verwendung der SR-IOV-Schnittstelle aktiviert ist.
 

NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED

Gibt an, dass NDIS-Paket-Koalescing-Empfangsfilter aktiviert sind.

EnabledQueueTypes

Ein bitweises OR von Flags, die die Typen von aktivierten Empfangswarteschlangen angeben. Das folgende Warteschlangentypflag ist gültig.

NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED

Gibt an, dass VM-Warteschlangen aktiviert sind. VM-Warteschlangen werden verwendet, wenn der Miniporttreiber für die Verwendung der VMQ-Schnittstelle aktiviert ist.

Hinweis Der Miniporttreiber darf dieses Flag nicht festlegen, wenn der Miniporttreiber nur für die Verwendung der SR-IOV-Schnittstelle aktiviert ist. Weitere Informationen zur Aktivierung dieser Schnittstellen finden Sie unter Handling SR-IOV, VMQ, and RSS Standardized INF Keywords.
 

NumQueues

Die Anzahl von VM-Warteschlangen, die der Netzwerkadapter unterstützt.

Hinweis Wenn der Miniporttreiber für die Verwendung der SR-IOV-Schnittstelle aktiviert ist, muss dieser Member auf 0 festgelegt werden. Wenn die Verwendung der SR-IOV-Schnittstelle aktiviert ist, verwendet NDIS virtuelle Ports (VPorts) für Empfangs- und Übertragungswarteschlangen anstelle von VM-Warteschlangen.
 

SupportedQueueProperties

Ein bitweises OR von Flags, die die vom Netzwerkadapter unterstützten VM-Warteschlangeneigenschaften angeben. Die folgenden Flags werden definiert:

NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED

Der Netzwerkadapter verwendet MSI-X für die Generierung von Interrupts der Empfangswarteschlange. Dieses Flag ist für Miniporttreiber obligatorisch, die die VMQ- oder SR-IOV-Schnittstelle unterstützen.

NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED

Der Netzwerkadapter stellt die Mindestanforderungen bereit, um die Paketfilterung von VM-Warteschlangen zu unterstützen.

Der Miniporttreiber muss dieses Flag festlegen, wenn er für die Verwendung der VMQ- oder SR-IOV-Schnittstelle aktiviert ist.

Weitere Informationen zu VMQ-Anforderungen für die Paketfilterung von VM-Warteschlangen finden Sie unter Festlegen und Löschen von VMQ-Filtern.

Weitere Informationen zu SR-IOV-Anforderungen für die Filterung von VM-Warteschlangenpaketen finden Sie unter Festlegen eines Empfangsfilters für einen virtuellen Port.

NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED

Der Netzwerkadapter unterstützt VM-Warteschlangen, die ein eingehendes empfangenes Paket am Lookaheadoffset aufteilen. Dieser Offset ist gleich oder größer als die angeforderte Lookaheadgröße. Der Netzwerkadapter verwendet DMA, um die Lookahead- und Post-Lookahead-Daten in separate Freigegebene Speichersegmente zu übertragen.

Hinweis Ab NDIS 6.30 wird das Aufteilen von Paketdaten in separate Lookaheadpuffer nicht mehr unterstützt. Miniport-Treiber, die diese Version von NDIS unterstützen, dürfen dieses Flag nicht festlegen.
 

NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED

Der Netzwerkadapter unterstützt die Möglichkeit, eines der folgenden Prozessoraffinitätsattribute dynamisch zu ändern:

  • Die Prozessoraffinität einer VM-Warteschlange in der VMQ-Schnittstelle. Die Prozessoraffinität wird durch eine OID-Satzanforderung von OID_RECEIVE_FILTER_QUEUE_PARAMETERS geändert.
  • Die Prozessoraffinität eines nicht standardmäßigen virtuellen Ports (VPort), der in der SR-IOV-Schnittstelle erstellt wurde und an die PCIe-Funktion (PCIe) physical function (PF) des Netzwerkadapters angefügt ist. Die Prozessoraffinität wird durch eine OID-Satzanforderung von OID_NIC_SWITCH_VPORT_PARAMETERS geändert.
Hinweis Dieses Flag wird in NDIS 6.30 und höher unterstützt. Miniporttreiber, die die VMQ- oder SR-IOV-Schnittstelle unterstützen, müssen dieses Flag festlegen.
 

NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED

Der Netzwerkadapter unterstützt die Interrupt-Koalescierung für empfangene Pakete für eines der folgenden Elemente:

  • Mehrere VM-Warteschlangen in der VMQ-Schnittstelle.
  • Mehrere VPorts, die an die PF in der SR-IOV-Schnittstelle angefügt sind.
Wenn dieses Flag festgelegt ist, muss der Netzwerkadapter Empfangsunterbrechungen für VM-Warteschlangen oder VPorts mit der gleichen Prozessoraffinität zusammenlegen.
Hinweis Dieses Flag wird in NDIS 6.30 und höher unterstützt. Miniporttreiber, die die VMQ- oder SR-IOV-Schnittstelle unterstützen, müssen dieses Flag festlegen.
 

NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE

Gibt an, dass die Anzahl der verfügbaren VM-Warteschlangen die Mindestanzahl von Warteschlangen entspricht, die von jedem Mitglied eines LBFO-Teams (Load Balancing Failover) verfügbar sind. Dieses Flag gilt nur für LBFO-Filter. Dieses Flag ist für Miniports nicht festgelegt.

NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE

Gibt an, dass die Anzahl der verfügbaren VM-Warteschlangen die Summe aller Warteschlangen ist, die von jedem Mitglied eines LBFO-Teams verfügbar sind. Dieses Flag gilt nur für LBFO-Filter. Dieses Flag ist für Miniports nicht festgelegt.

NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE

Der Netzwerkadapter unterstützt NDIS-Paket-Koalescing. Paketverknappung wird nur in der Standard-Empfangswarteschlange des Netzwerkadapters unterstützt. Diese Empfangswarteschlange weist den Bezeichner NDIS_DEFAULT_RECEIVE_QUEUE_ID auf.

Hinweis Dieses Flag wird in NDIS 6.30 und höher unterstützt.
 

SupportedFilterTests

Ein bitweises OR von Flags, die die Testvorgänge angeben, die ein Miniporttreiber unterstützt. Die folgenden Flags werden definiert:

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED

Der Netzwerkadapter unterstützt das Testen des ausgewählten Headerfelds, um zu bestimmen, ob es einem bestimmten Wert entspricht.

Hinweis Wenn der Miniporttreiber die VMQ- oder SR-IOV-Schnittstellen unterstützt, muss dieses Flag festgelegt werden.
 

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED

Der Netzwerkadapter unterstützt die Maskierung (also ein bitweises AND) des ausgewählten Headerfelds, um zu bestimmen, ob das Ergebnis einem angegebenen Wert entspricht.

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED

Der Netzwerkadapter unterstützt das Testen des ausgewählten Headerfelds, um festzustellen, ob es nicht einem angegebenen Wert entspricht.

Hinweis Dieses Flag wird in NDIS 6.30 und höher unterstützt.
 

SupportedHeaders

Ein bitweises OR von Flags, die die Typen von Netzwerkpaketheadern angeben, die ein Miniporttreiber überprüfen kann. Die folgenden Flags werden definiert:

NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED

Der Netzwerkadapter kann den MAC-Header (Media Access Control) eines Netzwerkpakets überprüfen. Das SupportedMacHeaderFields-Element definiert die verschiedenen Felder aus dem MAC-Header, die überprüft werden können.

NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED

Der Netzwerkadapter kann den ARP-Header (Address Resolution Protocol) eines Netzwerkpakets überprüfen. Das SupportedArpHeaderFields-Element definiert die verschiedenen Felder aus dem ARP-Header, die überprüft werden können.

Hinweis Dieses Flag wird in NDIS 6.30 und höher unterstützt.
 

NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED

Der Netzwerkadapter kann den IP-Header der Version 4 (IPv4) eines Netzwerkpakets überprüfen. Das SupportedIPv4HeaderFields-Element definiert die verschiedenen Felder aus dem IPv4-Header, die überprüft werden können.

Hinweis Dieses Flag wird in NDIS 6.30 und höher unterstützt.
 

NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED

Der Netzwerkadapter kann den IP-Header der Version 6 (IPv6) eines Netzwerkpakets überprüfen. Das SupportedIPv6HeaderFields-Element definiert die verschiedenen Felder aus dem IPv6-Header, die überprüft werden können.

Hinweis Dieses Flag wird in NDIS 6.30 und höher unterstützt.
 

NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED

Der Netzwerkadapter kann den UDP-Header (User Datagram Protocol) eines Netzwerkpakets überprüfen. Das SupportedIPv6HeaderFields-Element definiert die verschiedenen Felder aus dem UDP-Header, die überprüft werden können.

Hinweis Dieses Flag wird in NDIS 6.30 und höher unterstützt.
 

SupportedMacHeaderFields

Ein bitweises OR mit Flags, die die Typen von MAC-Headerfeldern angeben, die ein Miniporttreiber überprüfen kann. Die folgenden Flags sind definiert:

NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED

Der Netzwerkadapter unterstützt die Überprüfung und Filterung, die auf der MAC-Zieladresse im MAC-Header basieren.

Hinweis Ab NDIS 6.30 müssen Miniporttreiber, die die VMQ- oder SR-IOV-Schnittstelle unterstützen, dieses Flag festlegen.
 

NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED

Der Netzwerkadapter unterstützt die Überprüfung und Filterung, die auf der MAC-Quelladresse im MAC-Header basieren.

NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED

Der Netzwerkadapter unterstützt die Überprüfung und Filterung, die auf dem EtherType-Bezeichner im MAC-Header basieren. Der EtherType-Bezeichner für IPv4-Pakete ist beispielsweise 0x0800.

NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED

Der Netzwerkadapter unterstützt die Überprüfung und Filterung, die auf dem VLAN-Bezeichner im MAC-Header basieren.

Hinweis Ab NDIS 6.30 ist dieses Flag optional. Wenn der Miniporttreiber dieses Flag nicht festlegt, sollte der Netzwerkadapter die angegebenen MAC-Adressfelder überprüfen und filtern. Wenn im empfangenen Paket ein VLAN-Tag vorhanden ist, muss es vom Netzwerkadapter aus den Paketdaten entfernt werden. Der Miniporttreiber muss das VLAN-Tag in einer NDIS_NET_BUFFER_LIST_8021Q_INFO-Struktur platzieren, die der NET_BUFFER_LIST-Struktur des Pakets zugeordnet ist.
 

NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED

Der Netzwerkadapter unterstützt die Überprüfung und Filterung, die auf dem Prioritätstag im MAC-Header basieren.

NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED

Der Netzwerkadapter unterstützt die Überprüfung und Filterung, die auf dem Pakettypfeld des SNAP-Headers (IEEE 802.2 Subnetwork Access Protocol) in einem 802.3 MAC-Header basieren.

Hinweis Dieses Flag wird in NDIS 6.30 und höher unterstützt.
 

MaxMacHeaderFilters

Die maximale Anzahl von MAC-Headerfiltern, die der Miniporttreiber unterstützt.

MaxQueueGroups

Dieser Member ist für NDIS reserviert.

MaxQueuesPerQueueGroup

Dieser Member ist für NDIS reserviert.

MinLookaheadSplitSize

Die Mindestgröße in Bytes, die der Netzwerkadapter für Lookahead-Paketpuffer unterstützt.

Hinweis Ab NDIS 6.30 wird das Aufteilen von Paketdaten in separate Lookaheadpuffer nicht mehr unterstützt. Miniport-Treiber, die diese Version von NDIS unterstützen, müssen diesen Member auf 0 festlegen.
 

MaxLookaheadSplitSize

Die maximale Größe in Bytes, die der Netzwerkadapter für Lookahead-Paketpuffer unterstützt.

Hinweis Ab NDIS 6.30 wird das Aufteilen von Paketdaten in separate Lookaheadpuffer nicht mehr unterstützt. Miniport-Treiber, die diese Version von NDIS unterstützen, müssen diesen Member auf 0 festlegen.
 

SupportedARPHeaderFields

Ein bitweises OR mit Flags, die die Typen von ARP-Headerfeldern angeben, die ein Miniporttreiber überprüfen kann. Die folgenden Flags sind definiert:

NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED

Der Netzwerkadapter unterstützt die Empfangsfilterung für das ARP-Vorgangsfeld.

NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED

Der Netzwerkadapter unterstützt die Empfangsfilterung für das Feld ARP-Quellprotokolladresse (SPA).

NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED

Der Netzwerkadapter unterstützt die Empfangsfilterung im Feld ARP-Zielprotokolladresse (TPA).

SupportedIPv4HeaderFields

Ein bitweises OR mit Flags, die die Typen von IPv4-Headerfeldern angeben, die ein Miniporttreiber überprüfen kann. Die folgenden Flags sind definiert:

NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED

Der Netzwerkadapter unterstützt die Empfangsfilterung für das IPv4-Protokollfeld.

SupportedIPv6HeaderFields

Ein bitweises OR mit Flags, die die Typen von IPv6-Headerfeldern angeben, die ein Miniporttreiber überprüfen kann. Die folgenden Flags sind definiert:

NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED

Der Netzwerkadapter unterstützt die Empfangsfilterung für das IPv6-Protokollfeld.

SupportedUdpHeaderFields

Ein bitweises OR mit Flags, die die Typen von IPv6-Headerfeldern angeben, die ein Miniporttreiber überprüfen kann. Die folgenden Flags sind definiert:

NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED

Der Netzwerkadapter unterstützt die Empfangsfilterung im UDP-Zielportfeld.

Hinweis Wenn das empfangene UDP-Paket IPv4-Optionen oder IPv6-Erweiterungsheader enthält, kann der Netzwerkadapter das empfangene Paket automatisch löschen und so behandeln, als ob der UDP-Filtertest fehlgeschlagen wäre.
 

MaxFieldTestsPerPacketCoalescingFilter

Die maximale Anzahl von Tests für Paketheaderfelder, die für einen einzelnen Paket-Sammelfilter angegeben werden können. Weitere Informationen zum Zusammenfügen von Paketen finden Sie unter NDIS Packet Coalescing.

Hinweis Netzwerkadapter, die das Zusammenfügen von Paketen unterstützen, müssen fünf oder mehr Paketheaderfelder unterstützen, die für einen einzelnen Paketverknappungsfilter angegeben werden können. Wenn der Adapter das Zusammenfügen von Paketen nicht unterstützt, muss der Miniporttreiber diesen Wert auf 0 (null) festlegen.
 

MaxPacketCoalescingFilters

Die maximale Anzahl von Paket-Zusammenführungs-Empfangsfiltern, die vom Netzwerkadapter unterstützt werden.

Hinweis Netzwerkadapter, die die Paketverknappung unterstützen, müssen zehn oder mehr Paketverknappungsfilter unterstützen. Wenn der Adapter das Zusammenfügen von Paketen nicht unterstützt, muss der Miniporttreiber diesen Wert auf 0 (null) festlegen.
 

NdisReserved

Reserviert. Auf 0 festlegen.

Hinweise

Die NDIS_RECEIVE_FILTER_CAPABILITIES-Struktur wird im ReceiveFilterCapabilities-Member des NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES NDIS_FILTER_ATTACH_PARAMETERS und NDIS_BIND_PARAMETERS Strukturen und das Rückgabeergebnis der OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES OID-Abfrage.

Viele der Member- und Flageinstellungen der NDIS_RECEIVE_FILTER_CAPABILITIES-Struktur sind nur gültig, wenn der Miniporttreiber für die Verwendung der VMQ- oder SR-IOV-Schnittstelle aktiviert ist. Der Miniporttreiber kann diese Schnittstellen über standardisierte INF-Schlüsselwörter verwenden. Weitere Informationen finden Sie unter Behandeln von standardisierten INF-Schlüsselwörtern SR-IOV, VMQ und RSS.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.20 und höher.
Kopfzeile ntddndis.h (include Ndis.h)

Weitere Informationen

NDIS_BIND_PARAMETERS

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_RECEIVE_QUEUE_INFO

NDIS_RECEIVE_QUEUE_PARAMETERS

OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES