Condividi tramite


Code di ricezione VMQ

Un provider di servizi VMQ (Virtual Machine Queue) alloca le code di ricezione VMQ. L'hardware della scheda di rete assegna un pacchetto di dati di rete in ingresso a una coda se il pacchetto supera i test di filtro impostati nella coda.

Una coda di ricezione VMQ ha le proprietà seguenti:

  • Identificatore della coda univoco per la scheda di rete associata.

  • Affinità del processore per gli interrupt.

  • Filtri impostati nella coda.

  • Ricevere buffer assegnati alla coda.

Esiste anche una coda predefinita con le proprietà seguenti:

  • La coda predefinita esiste sempre. È necessario allocare altre code.

  • La coda predefinita riceve pacchetti che non superano i test di filtro per le altre code.

I driver Miniport allocano la memoria condivisa per i buffer di ricezione associati a un VMQ. A seconda della versione di Windows Server, i driver miniport devono seguire le linee guida per l'allocazione del buffer descritte nelle sezioni seguenti:

I requisiti di memoria condivisa VMQ sono progettati per risolvere potenziali problemi di sicurezza per le macchine virtuali.VMQ shared memory requirements are designed to address potential security issues for virtual machines (VM). Per altre informazioni sui problemi di sicurezza di VMQ, vedere Problemi di sicurezza con la memoria condivisa delle macchine virtuali NDIS.

Allocazione di memoria condivisa per buffer di ricezione VMQ (Windows Server 2008 R2)

Per NDIS 6.20 in Windows Server 2008 R2, se il driver miniport supporta la suddivisione dei dati dei pacchetti in buffer lookahead separati, può allocare memoria condivisa nel modo seguente:

  • Il driver miniport alloca la memoria condivisa per il buffer pre-lookahead dallo spazio indirizzi del sistema operativo di gestione eseguito in una partizione padre Hyper-V. Il buffer di pre-lookahead è la parte del pacchetto controllato dal sistema operativo di gestione.

  • Il driver miniport alloca la memoria condivisa per il buffer post-lookahead dallo spazio indirizzi del sistema operativo guest in esecuzione in una partizione figlio Hyper-V. Il buffer post-lookahead è la parte del pacchetto controllato dal sistema operativo guest.

    Nota La partizione figlio Hyper-V è nota anche come macchina virtuale.

La figura seguente mostra la memoria condivisa nelle code, nel sistema operativo di gestione e nei sistemi operativi guest.

Diagramma che illustra la memoria condivisa nelle code, la partizione del sistema operativo di gestione e le partizioni vm.

Nella figura, ogni pacchetto in una coda viene visualizzato con le informazioni di intestazione allocate dallo spazio indirizzi del sistema operativo di gestione e i dati allocati dallo spazio indirizzi del sistema operativo guest.

Allocazione di memoria condivisa per i buffer di ricezione VMQ (Windows Server 2012 e versioni successive)

A partire da NDIS 6.30, la suddivisione dei buffer di ricezione VMQ in buffer lookahead separati non è più supportata. Il driver miniport deve allocare memoria per ogni buffer di ricezione dallo spazio indirizzi del sistema operativo di gestione.