Filas de recebimento do VMQ

Um provedor de serviços de VMQ (fila de máquina virtual) aloca filas de recebimento de VMQ. O hardware do adaptador de rede atribui um pacote de dados de rede de entrada a uma fila se o pacote passar nos testes de filtro definidos na fila.

Uma fila de recebimento de VMQ tem as seguintes propriedades:

  • Um identificador de fila exclusivo para o adaptador de rede associado.

  • Afinidade do processador para interrupções.

  • Filtros definidos na fila.

  • Receber buffers atribuídos à fila.

Também há uma fila padrão que tem as seguintes propriedades:

  • A fila padrão sempre existe. Outras filas devem ser alocadas.

  • A fila padrão recebe pacotes que não passam nos testes de filtro para as outras filas.

Os drivers de miniporta alocam memória compartilhada para os buffers de recebimento associados a uma VMQ. Dependendo da versão do Windows Server, os drivers de miniporto devem seguir as diretrizes para alocação de buffer descritas nas seções a seguir:

Os requisitos de memória compartilhada do VMQ foram projetados para resolver possíveis problemas de segurança para VMs (máquinas virtuais). Para obter mais informações sobre problemas de segurança do VMQ, consulte Problemas de segurança com memória compartilhada da VM (Máquina Virtual) NDIS.

Alocando memória compartilhada para buffers de recebimento VMQ (Windows Server 2008 R2)

Para o NDIS 6.20 no Windows Server 2008 R2, se o driver de miniporto der suporte à divisão de dados de pacote em buffers lookahead separados, ele poderá alocar memória compartilhada da seguinte maneira:

  • O driver de miniporta aloca a memória compartilhada para o buffer pré-lookahead do espaço de endereço do sistema operacional de gerenciamento executado em uma partição pai do Hyper-V. O buffer pré-lookahead é a parte do pacote que é inspecionado pelo sistema operacional de gerenciamento.

  • O driver de miniporta aloca a memória compartilhada para o buffer pós-lookahead do espaço de endereço do sistema operacional convidado que é executado em uma partição filho do Hyper-V. O buffer pós-lookahead é a parte do pacote inspecionado pelo sistema operacional convidado.

    Nota A partição filho do Hyper-V também é conhecida como uma VM.

A figura a seguir mostra a memória compartilhada nas filas, no sistema operacional de gerenciamento e nos sistemas operacionais convidados.

diagrama ilustrando a memória compartilhada nas filas, a partição do sistema operacional de gerenciamento e as partições de vm.

Na figura, cada pacote em uma fila é mostrado com informações de cabeçalho alocadas do espaço de endereço do sistema operacional de gerenciamento e dados alocados do espaço de endereço do sistema operacional convidado.

Alocando memória compartilhada para buffers de recebimento de VMQ (Windows Server 2012 e versões posteriores)

A partir do NDIS 6.30, não há mais suporte para dividir buffers de recebimento de VMQ em buffers lookahead separados. O driver de miniporta deve alocar memória para cada buffer de recebimento do espaço de endereço do sistema operacional de gerenciamento.