NDIS_RECEIVE_FILTER_CAPABILITIES struttura (ntddndis.h)

La struttura NDIS_RECEIVE_FILTER_CAPABILITIES specifica le funzionalità di filtro di ricezione di una scheda di rete.

I filtri di ricezione NDIS vengono usati nelle interfacce NDIS seguenti:

Sintassi

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;

Members

Header

Struttura NDIS_OBJECT_HEADER per la struttura NDIS_RECEIVE_FILTER_CAPABILITIES . Il driver imposta il membro Type della struttura che Header specifica su NDIS_OBJECT_TYPE_DEFAULT.

Per indicare la versione della struttura NDIS_RECEIVE_FILTER_CAPABILITIES , il driver imposta il membro Revision su uno dei valori seguenti:

NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2

Aggiunta
vari membri per NDIS 6.30 e versioni successive.

Il driver imposta il membro Size su NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.

NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1

Versione originale per NDIS 6.20.

Il driver imposta il membro Size su NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1.

Flags

Or bit per bit dei flag. Questo membro è riservato per NDIS.

EnabledFilterTypes

Or bit per bit dei flag che specificano i tipi di filtri di ricezione abilitati. Il flag di tipo di filtro seguente è valido.

NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED

Specifica che i filtri VMQ sono abilitati.

Nota Il driver miniport deve impostare questo flag se il driver miniport è abilitato per usare l'interfaccia SR-IOV.
 

NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED

Specifica che i filtri di ricezione del pacchetto NDIS sono abilitati.

EnabledQueueTypes

Or bit per bit di flag che specificano i tipi di code di ricezione abilitate. Il flag del tipo di coda seguente è valido.

NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED

Specifica che le code di macchine virtuali sono abilitate. Le code di macchine virtuali vengono usate quando il driver miniport è abilitato per usare l'interfaccia VMQ.

Nota Il driver miniport non deve impostare questo flag se il driver miniport è abilitato solo per usare l'interfaccia SR-IOV. Per altre informazioni sul modo in cui queste interfacce sono abilitate, vedere Gestione delle parole chiave SR-IOV, VMQ e RSS Standardized INF.
 

NumQueues

Numero di code di macchine virtuali supportate dalla scheda di rete.

Nota Se il driver miniport è abilitato per usare l'interfaccia SR-IOV, deve impostare questo membro su zero. Quando si usa l'interfaccia SR-IOV, NDIS usa porte virtuali (VPorts) per ricevere e trasmettere code anziché code di macchine virtuali.
 

SupportedQueueProperties

Or bit per bit di flag che specificano le proprietà della coda della macchina virtuale supportate dalla scheda di rete. I flag seguenti sono definiti:

NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED

La scheda di rete usa MSI-X per la generazione di interruzioni della coda. Questo flag è obbligatorio per i driver miniport che supportano l'interfaccia VMQ o SR-IOV.

NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED

La scheda di rete fornisce i requisiti minimi per supportare il filtro dei pacchetti della coda di macchine virtuali.

Il driver miniport deve impostare questo flag se è abilitato per usare l'interfaccia VMQ o SR-IOV.

Per altre informazioni sui requisiti di VMQ per il filtro dei pacchetti della coda di macchine virtuali, vedere Impostazione e cancellazione dei filtri VMQ.

Per altre informazioni sui requisiti SR-IOV per il filtro dei pacchetti della coda di macchine virtuali, vedere Impostazione di un filtro di ricezione in una porta virtuale.

NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED

La scheda di rete supporta le code di macchine virtuali che suddivideno un pacchetto ricevuto in ingresso all'offset lookahead. Questo offset è uguale o maggiore delle dimensioni di lookahead richieste. La scheda di rete usa DMA per trasferire i dati lookahead e post-lookahead per separare i segmenti di memoria condivisa.

Nota A partire da NDIS 6.30, la suddivisione dei dati dei pacchetti in buffer lookahead separati non è più supportata. I driver Miniport che supportano questa versione di NDIS non devono impostare questo flag.
 

NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED

La scheda di rete supporta la possibilità di modificare dinamicamente uno degli attributi di affinità del processore seguenti:

  • Affinità del processore di una coda di macchine virtuali nell'interfaccia VMQ. L'affinità del processore viene modificata tramite una richiesta di set OID di OID_RECEIVE_FILTER_QUEUE_PARAMETERS.
  • L'affinità del processore di una porta virtuale non definita (VPort), creata nell'interfaccia SR-IOV e collegata alla funzione fisica PCI Express (PCIe) della scheda di rete. L'affinità del processore viene modificata tramite una richiesta di set OID di OID_NIC_SWITCH_VPORT_PARAMETERS.
Nota Questo flag è supportato in NDIS 6.30 e versioni successive. I driver miniport che supportano l'interfaccia VMQ o SR-IOV devono impostare questo flag.
 

NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED

La scheda di rete supporta l'interruzione del raggruppamento per i pacchetti ricevuti in uno dei seguenti elementi:

  • Più code di macchine virtuali nell'interfaccia VMQ.
  • Più VPort collegati al pf nell'interfaccia SR-IOV.
Se questo flag è impostato, la scheda di rete deve ricevere interruzioni per le code di macchine virtuali o le VPort che hanno la stessa affinità del processore.
Nota Questo flag è supportato in NDIS 6.30 e versioni successive. I driver miniport che supportano l'interfaccia VMQ o SR-IOV devono impostare questo flag.
 

NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE

Indica che il numero di code di macchine virtuali disponibili è il numero minimo di code disponibili da qualsiasi membro di un team di failover di bilanciamento del carico. Questo flag si applica solo ai filtri LBFO. Questo flag non è impostato per miniport.

NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE

Indica che il numero di code di macchine virtuali disponibili è la somma di tutte le code disponibili da ogni membro di un team LBFO. Questo flag si applica solo ai filtri LBFO. Questo flag non è impostato per miniport.

NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE

La scheda di rete supporta il raggruppamento dei pacchetti NDIS. Il raggruppamento dei pacchetti è supportato solo nella coda di ricezione predefinita della scheda di rete. Questa coda di ricezione ha un identificatore di NDIS_DEFAULT_RECEIVE_QUEUE_ID.

Nota Questo flag è supportato in NDIS 6.30 e versioni successive.
 

SupportedFilterTests

Or bit per bit di flag che specificano le operazioni di test supportate da un driver miniport. I flag seguenti sono definiti:

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED

La scheda di rete supporta il test del campo intestazione selezionato per determinare se è uguale a un determinato valore.

Nota Se il driver miniport supporta le interfacce VMQ o SR-IOV, deve impostare questo flag.
 

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED

La scheda di rete supporta la maschera ( ovvero un valore AND bit per bit) del campo intestazione selezionato per determinare se il risultato è uguale a un valore specificato.

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED

La scheda di rete supporta il test del campo intestazione selezionato per determinare se non è uguale a un valore specificato.

Nota Questo flag è supportato in NDIS 6.30 e versioni successive.
 

SupportedHeaders

Or bit per bit di flag che specificano i tipi di intestazioni di pacchetti di rete che un driver miniport può controllare. I flag seguenti sono definiti:

NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED

La scheda di rete può controllare l'intestazione MAC (Media Access Control) di un pacchetto di rete. Il membro SupportedMacHeaderFields definisce i vari campi dell'intestazione MAC che possono essere controllati.

NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED

La scheda di rete può esaminare l'intestazione ARP (Address Resolution Protocol) di un pacchetto di rete. Il membro SupportedArpHeaderFields definisce i vari campi dell'intestazione ARP che possono essere controllati.

Nota Questo flag è supportato in NDIS 6.30 e versioni successive.
 

NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED

La scheda di rete può controllare l'intestazione IP versione 4 (IPv4) di un pacchetto di rete. Il membro SupportedIPv4HeaderFields definisce i vari campi dell'intestazione IPv4 che possono essere controllati.

Nota Questo flag è supportato in NDIS 6.30 e versioni successive.
 

NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED

La scheda di rete può controllare l'intestazione IP versione 6 (IPv6) di un pacchetto di rete. Il membro SupportedIPv6HeaderFields definisce i vari campi dell'intestazione IPv6 che possono essere controllati.

Nota Questo flag è supportato in NDIS 6.30 e versioni successive.
 

NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED

La scheda di rete può controllare l'intestazione USER Datagram Protocol (UDP) di un pacchetto di rete. Il membro SupportedIPv6HeaderFields definisce i vari campi dell'intestazione UDP che possono essere controllati.

Nota Questo flag è supportato in NDIS 6.30 e versioni successive.
 

SupportedMacHeaderFields

Or bit per bit di flag che specificano i tipi di campi di intestazione MAC che un driver miniport può controllare. I flag seguenti sono definiti:

NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED

La scheda di rete supporta l'ispezione e il filtro basati sull'indirizzo MAC di destinazione nell'intestazione MAC.

Nota A partire da NDIS 6.30, i driver miniport che supportano l'interfaccia VMQ o SR-IOV devono impostare questo flag.
 

NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED

La scheda di rete supporta l'ispezione e il filtro basati sull'indirizzo MAC di origine nell'intestazione MAC.

NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED

La scheda di rete supporta l'ispezione e il filtro basati sull'identificatore EtherType nell'intestazione MAC. Ad esempio, l'identificatore EtherType per i pacchetti IPv4 è 0x0800.

NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED

La scheda di rete supporta l'ispezione e il filtro basati sull'identificatore VLAN nell'intestazione MAC.

Nota A partire da NDIS 6.30, questo flag è facoltativo. Se il driver miniport non imposta questo flag, la scheda di rete deve controllare e filtrare i campi di indirizzo MAC specificati. Se nel pacchetto ricevuto è presente un tag VLAN, la scheda di rete deve rimuoverla dai dati del pacchetto. Il driver miniport deve inserire il tag VLAN in una struttura di NDIS_NET_BUFFER_LIST_8021Q_INFO associata alla struttura NET_BUFFER_LIST del pacchetto.
 

NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED

La scheda di rete supporta l'ispezione e il filtro basati sul tag di priorità nell'intestazione MAC.

NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED

La scheda di rete supporta l'ispezione e il filtro basati sul campo del tipo di pacchetto dell'intestazione IEEE 802.2 subnetwork access protocol (SNAP) in un'intestazione MAC 802.3.

Nota Questo flag è supportato in NDIS 6.30 e versioni successive.
 

MaxMacHeaderFilters

Numero massimo di filtri di intestazione MAC supportati dal driver miniport.

MaxQueueGroups

Questo membro è riservato per NDIS.

MaxQueuesPerQueueGroup

Questo membro è riservato per NDIS.

MinLookaheadSplitSize

Dimensioni minime, in byte, supportate dalla scheda di rete per i buffer dei pacchetti lookahead.

Nota A partire da NDIS 6.30, la suddivisione dei dati dei pacchetti in buffer lookahead separati non è più supportata. I driver Miniport che supportano questa versione di NDIS devono impostare questo membro su zero.
 

MaxLookaheadSplitSize

Dimensioni massime, in byte, supportate dalla scheda di rete per i buffer dei pacchetti lookahead.

Nota A partire da NDIS 6.30, la suddivisione dei dati dei pacchetti in buffer lookahead separati non è più supportata. I driver Miniport che supportano questa versione di NDIS devono impostare questo membro su zero.
 

SupportedARPHeaderFields

Or bit per bit di flag che specificano i tipi di campi di intestazione ARP che un driver miniport può controllare. I flag seguenti sono definiti:

NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED

La scheda di rete supporta la ricezione del filtro nel campo dell'operazione ARP.

NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED

La scheda di rete supporta la ricezione del filtro nel campo Indirizzo del protocollo di origine ARP (SPA).

NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED

La scheda di rete supporta la ricezione del filtro nel campo TPA (ARP Target Protocol Address).

SupportedIPv4HeaderFields

Or bit per bit dei flag che specificano i tipi di campi di intestazione IPv4 che un driver miniport può controllare. I flag seguenti sono definiti:

NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED

La scheda di rete supporta la ricezione del filtro nel campo del protocollo IPv4.

SupportedIPv6HeaderFields

Or bit per bit di flag che specificano i tipi di campi di intestazione IPv6 che un driver miniport può controllare. I flag seguenti sono definiti:

NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED

La scheda di rete supporta la ricezione del filtro nel campo protocollo IPv6.

SupportedUdpHeaderFields

Or bit per bit di flag che specificano i tipi di campi di intestazione IPv6 che un driver miniport può controllare. I flag seguenti sono definiti:

NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED

La scheda di rete supporta la ricezione del filtro nel campo della porta di destinazione UDP.

Nota Se il pacchetto UDP ricevuto contiene le opzioni IPv4 o le intestazioni di estensione IPv6, la scheda di rete può eliminare automaticamente il pacchetto ricevuto e considerarlo come se non fosse riuscito il test del filtro UDP.
 

MaxFieldTestsPerPacketCoalescingFilter

Numero massimo di test nei campi dell'intestazione del pacchetto che possono essere specificati per un singolo filtro di unione dei pacchetti. Per altre informazioni sul raggruppamento dei pacchetti, vedere Coalescing dei pacchetti NDIS.

Nota Le schede di rete che supportano il coalescing dei pacchetti devono supportare cinque o più campi di intestazione di pacchetto che possono essere specificati per un singolo filtro di unione dei pacchetti. Se l'adattatore non supporta il raggruppamento dei pacchetti, il driver miniport deve impostare questo valore su zero.
 

MaxPacketCoalescingFilters

Numero massimo di filtri di ricezione del raggruppamento di pacchetti supportati dalla scheda di rete.

Nota Le schede di rete che supportano il coalescing dei pacchetti devono supportare dieci o più filtri di unione dei pacchetti. Se l'adattatore non supporta il raggruppamento dei pacchetti, il driver miniport deve impostare questo valore su zero.
 

NdisReserved

Riservato. Impostare su 0.

Commenti

La struttura NDIS_RECEIVE_FILTER_CAPABILITIES viene usata nel membro ReceiveFilterCapabilities del NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES, NDIS_FILTER_ATTACH_PARAMETERS e NDIS_BIND_PARAMETERS strutture e il risultato restituito OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES Query OID.

Molte delle impostazioni dei membri e del flag della struttura NDIS_RECEIVE_FILTER_CAPABILITIES sono valide solo se il driver miniport è abilitato per usare l'interfaccia VMQ o SR-IOV. Il driver miniport è abilitato per usare queste interfacce tramite parole chiave INF standardizzate. Per altre informazioni, vedere Gestione delle parole chiave SR-IOV, VMQ e RSS Standardized INF.

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.20 e versioni successive.
Intestazione ntddndis.h (include Ndis.h)

Vedi anche

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