OID_GEN_RECEIVE_SCALE_PARAMETERS_V2
Avvertimento
Alcune informazioni contenute in questo argomento riguardano il prodotto non definitiva, che potrebbe essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non fornisce alcuna garanzia, espressa o implicita, in relazione alle informazioni fornite qui.
RSSv2 è disponibile in anteprima solo in Windows 10 versione 1809.
L'OID OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 viene inviato a RSSv2driver miniport in grado di impostare 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 emesso 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, è destinata alla 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 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.
Osservazioni
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 IT diventano attivi.
- Il driver miniport avvia il calcolo dell'hash RSS, l'impostazione del valore OOB corrispondente per tutti i pacchetti e indirizza i pacchetti a un processore specificato dalla voce della tabella di riferimento indiretto o dal parametro del processore predefinito.
Dopo l'abilitazione di RSS, il livello superiore rilascia l'OID OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES per spostare gli IT in processori diversi. In RSSv2, il DefaultQueue e PrimaryProcessor vengono spostati anche 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, la ricezione del traffico 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 quindi 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 funzioni di gestione. Per esempio:
- Prima di modificare il numero di code, il livello superiore garantirà 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 di VMMQ-RESTRICTED, il livello superiore garantirà che il contenuto della tabella di riferimento indiretto venga normalizzato in base 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 di stato | Condizione di errore |
---|---|
NDIS_STATUS_INVALID_LENGTH | L'OID 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 |
|
NDIS_STATUS_INVALID_PARAMETER | Altri campi, nell'intestazione o nell'OID stesso, contengono valori non validi. |
Fabbisogno
versione: Windows 10 versione 1709 Header: Ntddndis.h (include Ndis.h)