Condividi tramite


Allocazione di VPort per VMMQ

NDIS alloca VPorts quando la funzionalità VmMQ (Virtual Machine Multiple Queues) è presente nel modo seguente.

NDIS crea un VPort non predefinito nella scheda miniport eseguendo la richiesta OID OID_NIC_SWITCH_CREATE_VPORT . Quando si crea una funzione fisica RSS (PF), NDIS inizializzerà la struttura NDIS_NIC_SWITCH_VPORT_PARAMETERS come indicato di seguito:

  • NDIS imposta il campo AttachedFunctionId su NDIS_PF_FUNCTION_ID.

  • Se VMMQ è abilitato, NDIS imposta il campo NumQueuePairs sul numero di coppie di code VMMQ che devono essere usate per questo VPort. Questo numero include il processore RSS predefinito per questo VPort. È garantito che il numero totale di processori non superi questo numero. Se VMMQ è disabilitato, NDIS imposta questo valore su uno.

  • Se VMMQ è abilitato, il campo ProcessorAffinity definisce una maschera bit dei potenziali processori RSS che l'adattatore miniport deve usare per questo VPort. I processori usati dallo stack di rete per popolare le voci di tabella indirette per il VPort sono un subset dei processori identificati da questa maschera di bit. La maschera sarà un subset dei processori RSS restituiti dalla chiamata a NdisGetRssProcessorInformation e il numero di bit set potrebbe superare il numero di code RSS richieste per il VPort. Se VMMQ è disabilitato, l'adattatore miniport deve usare il numero di processore più basso specificato in questa maschera di bit quando si imposta l'affinità della coda VPort.

  • NDIS imposta il flag NDIS_NIC_SWITCH_VPORT_PARAMS_NUM_QUEUE_PAIRS_CHANGED per indicare che il membro NumQueuePairs è stato aggiornato dopo la creazione del VPort. Quando VMMQ è abilitato, è possibile aggiornare il numero di code per le VPort predefinite e non predefinite.