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 |
---|---|
|
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. |
|
Impostare questo flag se la scheda di interfaccia di rete può indicare alla funzione MiniportInterrupt che le CPU di destinazione hanno accodato pacchetti ricevuti. |
|
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. |
|
Impostare questo flag se la scheda di interfaccia di rete supporta gli msi. Questo flag è supportato in NDIS 6.30 e versioni successive. |
|
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 . |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Questo flag è riservato per uso futuro. |
|
Questo flag è riservato per uso futuro. |
|
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) |