Condividi tramite


struttura NDIS_RECEIVE_SCALE_CAPABILITIES (ntddndis.h)

La struttura NDIS_RECEIVE_SCALE_CAPABILITIES specifica le funzionalità rss (Receive Side Scaling) di un adattatore miniport.

Sintassi

typedef struct _NDIS_RECEIVE_SCALE_CAPABILITIES {
  NDIS_OBJECT_HEADER  Header;
  NDIS_RSS_CAPS_FLAGS CapabilitiesFlags;
  ULONG               NumberOfInterruptMessages;
  ULONG               NumberOfReceiveQueues;
  USHORT              NumberOfIndirectionTableEntries;
} NDIS_RECEIVE_SCALE_CAPABILITIES, *PNDIS_RECEIVE_SCALE_CAPABILITIES;

Members

Header

Struttura NDIS_OBJECT_HEADER per la struttura NDIS_RECEIVE_SCALE_CAPABILITIES . Impostare il membro Type della struttura specificata da Header su NDIS_OBJECT_TYPE_RSS_CAPABILITIES.

Per NDIS 6.60 e versioni successive, impostare il membro Revision su NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_3 e il membro Sizesu NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_3.

Per NDIS 6.30 e versioni successive, impostare il membro Revision su NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 e il membro Sizesu NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2.

Per NDIS 6.0, 6.1 e 6.20, impostare il membro Revision su NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 e il membro Sizesu NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1.

CapabilitiesFlags

Maschera di bit di flag che specificano le funzionalità RSS della scheda di interfaccia di rete. Il driver miniport può specificare i flag seguenti:

Valore Significato
NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS
Impostare questo flag se la scheda di interfaccia di rete supporta le interruzioni segnalate dai messaggi ( MSI). Questo flag indica che la scheda di interfaccia di rete può generare un interrupt separato per ogni CPU dopo che accoda i pacchetti assegnati alla CPU.
NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR
Impostare questo flag se la scheda di interfaccia di rete può indicare alla funzione MiniportInterrupt che le CPU di destinazione hanno accodato pacchetti ricevuti.
NDIS_RSS_CAPS_USING_MSI_X
Impostare questo flag se la scheda di interfaccia di rete usa le interruzioni segnalate dal messaggio (MSI). Questo flag è supportato in NDIS 6.20 e versioni successive.
NDIS_RSS_CAPS_SUPPORTS_MSI_X
Impostare questo flag se la scheda di interfaccia di rete supporta gli msi. Questo flag è supportato in NDIS 6.30 e versioni successive.
NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC
Impostare questo flag se il driver miniport è in grado di rilevare le CPU di destinazione in cui sono stati accodati i pacchetti ricevuti dalla funzione MiniportInterruptDPC .
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4
Impostare questo flag se la scheda di interfaccia di rete può identificare un pacchetto IPv4 (con o senza opzioni). Inoltre, la scheda di interfaccia di rete supporta il calcolo del valore hash sui campi di intestazione IPv4 e sui campi di intestazione TCP.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6
Impostare questo flag se la scheda di interfaccia di rete può identificare un pacchetto IPv6 e calcolare un valore hash su campi in un pacchetto IPv6. La scheda di interfaccia di rete deve essere in grado di calcolare un valore hash sui campi nell'intestazione IPv6 di base e sui campi nell'intestazione TCP. Usare questo flag se la scheda di interfaccia di rete non è in grado di calcolare un valore hash su campi che si trovano nelle intestazioni dell'estensione IPv6.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX
Impostare questo flag se la scheda di interfaccia di rete può identificare un pacchetto IPv6 e calcolare un valore hash su campi in un pacchetto IPv6 che contiene intestazioni di estensione IPv6. La scheda di interfaccia di rete può calcolare un valore hash sui campi nell'intestazione IPv6 di base, nelle intestazioni dell'estensione IPv6 e nell'intestazione TCP. La scheda di interfaccia di rete deve essere in grado di calcolare i valori hash sui campi nell'opzione indirizzo home e nell'intestazione di routing type-2 nelle intestazioni dell'estensione IPv6.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4
Impostare questo flag se la scheda di interfaccia di rete può identificare un pacchetto IPv4 con o senza opzioni e se la scheda di interfaccia di rete supporta il calcolo del valore hash nei campi di intestazione IPv4 e nei campi di intestazione UDP.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6
Impostare questo flag se la scheda di interfaccia di rete può identificare un pacchetto IPv6 e calcolare un valore hash su campi in un pacchetto IPv6. La scheda di interfaccia di rete deve essere in grado di calcolare un valore hash sui campi nell'intestazione IPv6 di base e sui campi nell'intestazione UDP. Usare questo flag se la scheda di interfaccia di rete non è in grado di calcolare un valore hash su campi che si trovano nelle intestazioni dell'estensione IPv6.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX
Impostare questo flag se la scheda di interfaccia di rete può identificare un pacchetto IPv6 e calcolare un valore hash su campi in un pacchetto IPv6 che contiene intestazioni di estensione IPv6. La scheda di interfaccia di rete può calcolare un valore hash sui campi nell'intestazione IPv6 di base, nelle intestazioni dell'estensione IPv6 e nell'intestazione UDP. La scheda di interfaccia di rete deve essere in grado di calcolare i valori hash sui campi nell'opzione indirizzo home e nell'intestazione di routing type-2 nelle intestazioni dell'estensione IPv6.
NdisHashFunctionToeplitz
Impostare questo flag se la scheda di interfaccia di rete supporta la funzione hash toeplitz. Se la scheda di interfaccia di rete supporta RSS, il supporto per la funzione hash è obbligatorio. Per altre informazioni sulle funzioni hash, vedere NDIS_RSS_HASH_FUNC_FROM_HASH_INFO.
NdisHashFunctionReserved1
Questo flag è riservato per uso futuro.
NdisHashFunctionReserved2
Questo flag è riservato per uso futuro.
NdisHashFunctionReserved3
Questo flag è riservato per uso futuro.

NumberOfInterruptMessages

Numero di messaggi di interruzione supportati dalla scheda di interfaccia di rete se la scheda di interfaccia di rete supporta le interfacce di rete. Se la scheda di interfaccia di rete non supporta gli msi ma supporta gli interrupt basati su riga, impostare questo numero su 1.

NumberOfReceiveQueues

Numero di code di ricezione hardware supportate dalla scheda di interfaccia di rete.

NumberOfIndirectionTableEntries

Numero massimo di voci supportate dal driver miniport nella tabella di riferimento indiretto. Questo valore deve essere una potenza di 2. Tutti gli adattatori miniport NDIS 6.30 e versioni successive devono supportare questo membro, necessario per le funzioni virtuali.

Commenti

I driver overlying possono usare il OID_GEN_RECEIVE_SCALE_CAPABILITIES OID per eseguire query sulle funzionalità rss (Receive Side Scaling) di una scheda di interfaccia di rete e del relativo driver miniport.

Il driver miniport restituisce le funzionalità RSS in una struttura NDIS_RECEIVE_SCALE_CAPABILITIES .

Per alcuni carichi di lavoro, un subset di pacchetti UDP potrebbe essere frammentato a causa delle modifiche di route o del mittente che non aderisce alle limitazioni di MTU. In questi rari casi, i pacchetti dello stesso flusso possono essere indicati su processori diversi in base all'hash a 4 tuple o a 2 tuple. Pertanto, i driver miniport che annunciano NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4, NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6 e NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX devono fornire un modo per disabilitare le funzionalità RSS UDP tramite proprietà avanzate.

Requisiti

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

Vedi anche

MiniportInterrupt

MiniportInterruptDPC

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO OID_GEN_RECEIVE_SCALE_CAPABILITIES

Receive Side Scaling (RSS)