Condividi tramite


struttura NDIS_RSS_SET_INDIRECTION_ENTRY (ntddndis.h)

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 1803.

La struttura NDIS_RSS_SET_INDIRECTION_ENTRY rappresenta un comando per impostare una singola voce di tabella di riferimento indiretto. È contenuto in una struttura NDIS_RSS_SET_INDIRECTION_ENTRIES, che viene usata nell'OID OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES. OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES è un OID sincrono per RSS versione 2 (RSSv2).

Sintassi

typedef struct _NDIS_RSS_SET_INDIRECTION_ENTRY {
  NDIS_NIC_SWITCH_ID       SwitchId;
  NDIS_NIC_SWITCH_VPORT_ID VPortId;
  ULONG                    Flags;
  USHORT                   IndirectionTableIndex;
  PROCESSOR_NUMBER         TargetProcessorNumber;
  NDIS_STATUS              EntryStatus;
} NDIS_RSS_SET_INDIRECTION_ENTRY, *PNDIS_RSS_SET_INDIRECTION_ENTRY;

Membri

SwitchId

Valore NDIS_NIC_SWITCH_ID che rappresenta l'opzione NIC in cui risiede il VPort.

L'identificatore del commutatore è un numero intero compreso tra zero e il numero di commutatori supportati dalla scheda di rete. Un valore NDIS_DEFAULT_SWITCH_ID indica il commutatore di scheda di rete predefinito.

Questo campo deve essere impostato su 0 nel caso RSS nativo.

VPortId

Valore NDIS_NIC_SWITCH_VPORT_ID che rappresenta l'identificatore VPort.

Questo campo deve essere impostato su 0 nel caso RSS nativo.

Flags

Valore ULONG che contiene un OR bit per bit di flag. Questo membro qualifica le informazioni in questa struttura.

I flag possibili sono i seguenti:

Valore Significato
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_PRIMARY_PROCESSOR
Indica che il NDIS_RSS_SET_INDIRECTION_ENTRY fa riferimento al processore primario dell'entità di ridimensionamento. La tabella di riferimento indiretto non viene utilizzata. Quando il processore primario è *inattivo* (RSS è abilitato), il driver miniport deve tenere traccia degli aggiornamenti alle voci con questo flag impostato in modo da sapere quale processore sarà il primario quando RSS è disabilitato.
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_DEFAULT_PROCESSOR
Indica che il NDIS_RSS_SET_INDIRECTION_ENTRY fa riferimento al processore predefinito dell'entità di ridimensionamento. Il processore predefinito gestisce pacchetti senzaash. La tabella di riferimento indiretto non viene utilizzata. Quando il processore predefinito è *inattivo* (RSS è disabilitato), il driver miniport deve tenere traccia degli aggiornamenti alle voci con questo flag impostato in modo da sapere quale processore sarà predefinito quando RSS è abilitato.

IndirectionTableIndex

Indice hash dell'ITE che punta attualmente alla CPU corrente e viene modificato in modo da puntare a un altro processore. Quando la tabella di riferimento indiretto è inattiva (RSS è disabilitata), il driver miniport deve tenere traccia degli aggiornamenti alle voci della tabella di riferimento indiretto in modo da avere la tabella di riferimento indiretto corretta quando RSS è abilitato.

TargetProcessorNumber

Numero del processore di destinazione a cui l'ITE deve puntare al completamento. Il driver miniport dovrebbe riuscire a passare dall'ITE corrente al processore corrente.

EntryStatus

Codice NDIS_STATUS che indica lo stato dell'operazione di spostamento per questa voce. Poiché NDIS_RSS_SET_INDIRECTION_ENTRY viene usato nel contesto di una chiamata OID sincrona, il driver miniport non può restituire NDIS_STATUS_PENDING per questo membro.

Per semplificare l'implementazione dei driver miniport, il protocollo di livello superiore inizializzerà questo campo per NDIS_STATUS_PENDING. I driver Miniport devono sovrascrivere NDIS_STATUS_PENDING con un codice di stato NDIS riuscito o negativo. Se il livello superiore rileva che questo campo è ancora NDIS_STATUS_PENDING al completamento dell'OID OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES, causerà un controllo del bug di sistema e indicherà che il driver miniport è in errore.

Importante

Tutte le strutture NDIS_RSS_SET_INDIRECTION_ENTRY in un gruppo, contenute in una struttura NDIS_RSS_SET_INDIRECTION_ENTRIES, devono essere contrassegnate con la stessa EntryStatus.

Se si verifica un errore con questo comando di spostamento, impostare EntryStatus su uno dei codici di stato seguenti per tale condizione di errore:

Codice di stato Condizione di errore
NDIS_STATUS_INVALID_PARAMETER
  • Il SwitchId o membro VPortId non è valido.
  • Il membro flag di non è valido.
  • Il membro indirectionTableIndex supera il NumberOfIndirectionTableEntries attualmente configurato dalla struttura NDIS_RECEIVE_SCALE_PARAMETERS_V2.
NDIS_STATUS_INVALID_PORT_STATE Il VPort non è attivato o è in un altro stato che impedisce l'accettazione degli ID RSSv2.
NDIS_STATUS_NOT_ACCEPTED Cpu dell'attore non valida.
NDIS_STATUS_INVALID_DATA Per un parametro di spostamento attivo, il nuovo processore non fa parte del set di processori RSS dell'adattatore. Si noti che parametri di inattivi devono essere rilevati solo. Vengono convalidati in un secondo momento, durante la transizione dello stato RSS (per su o disattivato).
NDIS_STATUS_NO_QUEUES Un gruppo di voci di comando non riesce il controllo "numero di code" per il VPort specificato da tale gruppo.

Fabbisogno

Requisito Valore
client minimo supportato Supportato in NDIS 6.80 e versioni successive.
intestazione ntddndis.h (include Ndis.h)

Vedere anche

NDIS_RSS_SET_INDIRECTION_ENTRIES

OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES

receive side scaling versione 2 (RSSv2)

'interfaccia di richiesta OID sincrona in NDIS 6.80