OID_GEN_RECEIVE_SCALE_PARAMETERS_V2

Avviso

Alcune informazioni contenute in questo argomento riguardano il prodotto in versione non definitiva, che può essere modificato in modo sostanziale prima che venga rilasciato in commercio. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.

RSSv2 è disponibile in anteprima solo in Windows 10, versione 1809.

Il OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 OID viene inviato ai driver miniport che supportano RSSv2 per impostare i parametri di runtime, diversi dalla tabella di riferimento indiretto, per un'entità di ridimensionamento. OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 sostituisce l'OID OID_GEN_RECEIVE_SCALE_PARAMETERS da RSSv1 e non è visibile ai filtri NDIS Light Weight Filters (LWFs) prima di NDIS 6.80. Questo OID è un OID regolare e può essere emesso come richiesta di query o set. Viene rilasciato in IRQL == PASSIVE_LEVEL. Può essere destinato a un determinato VPort, quando il flag NDIS_OID_REQUEST_FLAGS_VPORT_ID_VALID è impostato alla creazione dell'opzione di interfaccia di rete. In caso contrario, ha come destinazione la scheda di interfaccia di rete fisica nel caso RSS nativo.

Come query, i driver NDIS e overlying possono usare OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 per eseguire query sui parametri RSS di una scheda di interfaccia di rete. NDIS restituisce una struttura NDIS_RECEIVE_SCALE_PARAMETERS_V2 che definisce i parametri RSS correnti.

Come set, lo scopo di questo OID è eseguire le azioni seguenti:

  • Configurare inizialmente l'entità di ridimensionamento (un adattatore miniport in modalità RSS nativa o un VPort in modalità VMQ).
  • Abilitare o disabilitare RSS.
  • Quando si usa la modalità RSS, eseguire funzioni di gestione non di intervallo critiche, ad esempio la modifica della chiave hash, il tipo hash e la funzione hash, il numero di code o il numero di voci della tabella di riferimento indiretto per l'entità di ridimensionamento.

Commenti

L'abilitazione di RSS e l'impostazione dei parametri RSS possono essere eseguiti in un unico passaggio. Dopo che il livello superiore abilita RSS usando questo OID, lo stato iniziale dell'entità di ridimensionamento è il seguente:

  • Il processore primario diventa inattivo.
  • Il processore predefinito diventa attivo.
  • Tutti gli ITE diventano attivi.
  • Il driver miniport avvia il calcolo dell'hash RSS, l'impostazione dell'OOB corrispondente per tutti i pacchetti e indirizza i pacchetti a un processore specificato dalla voce della tabella di riferimento indiretto o dal parametro processore predefinito.

Dopo l'abilitazione di RSS, il livello superiore rilascia l'OID OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES per spostare gli ITE in processori diversi. In RSSv2, anche DefaultQueue e PrimaryProcessor vengono spostati in un processore diverso usando OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES.

Durante il processo di disabilitazione di RSS, il livello superiore punterà tutti gli ITEs al processore primario prima di richiamare questo OID per disattivare RSS. Dopo questo punto, il traffico di ricezione deve avere come destinazione il processore primario. Tuttavia, i driver miniport non dovrebbero aspettarsi la disabilitazione di RSS prima dell'eliminazione di VPort. Il livello superiore può impostare il filtro di ricezione sul VPort su zero, assicurando che nessun traffico di ricezione venga propagato attraverso il VPort, quindi procedere all'eliminazione del VPort senza disabilitare RSS.

Il livello superiore garantisce che le invarianti importanti non vengano violate prima di eseguire le funzioni di gestione. Ad esempio:

  • Prima di modificare il numero di code, il livello superiore garantisce che la tabella di riferimento indiretto non faccia riferimento a più processori rispetto a quelli configurati per un VPort. Prima di modificare il numero di voci di tabella di riferimento indiretto per le schede VMMQ-RESTRICTED, il livello superiore garantisce che il contenuto della tabella di riferimento indiretto sia normalizzato alla potenza di 2.

Condizioni di errore e codici di stato

Questo OID restituisce i codici di stato seguenti quando si verifica un errore:

Codice stato Condizione di errore
NDIS_STATUS_INVALID_LENGTH L'OID è in formato non valido.
NDIS_STATUS_NO_QUEUES Il numero di code viene modificato quando RSS è abilitato, ma la tabella di riferimento indiretto corrente fa riferimento a più processori rispetto al nuovo numero di code.
NDIS_STATUS_INVALID_DATA
  • La tabella di riferimento indiretto viene ridotta di dimensioni, ma non contiene un modello di ripetizione power-of-two.
  • Durante una transizione di stato RSS (da on o off), un processore da un parametro di spostamento che diventa attivo non appartiene al set di processori RSS dell'adattatore. Si noti che i parametri di spostamento inattivi sono solo operazioni di rilevamento delle scritture nel processore e non vengono applicate. L'imposizione avviene durante la transizione dello stato RSS quando il parametro diventa attivo.
NDIS_STATUS_INVALID_PARAMETER Altri campi, nell'intestazione o nell'OID stesso, contengono valori non validi.

Requisiti

Versione: Windows 10, versione 1709 Intestazione: Ntddndis.h (include Ndis.h)

Vedi anche