Partilhar via


Suporte à migração ao vivo do NDIS VMQ

Para dar suporte à migração ao vivo, uma máquina virtual (VM) pode ser pausada em qualquer instrução ou limite de E/S pendente. Ou seja, a máquina virtual pode não concluir solicitações de recebimento pendentes. Assim, o provedor de serviços virtuais de rede (VSP) devolve todos os pacotes recebidos ao adaptador de rede subjacente que a VM não enviou de volta.

Observação Em Hyper-V, uma partição filha também é conhecida como máquina virtual (VM).

Quando a VM é reiniciada noutro host, o VSP da rede do novo host gere os pacotes recebidos que a VM retomada devolve e não os transmite para o novo controlador subjacente na miniporta. Após a conclusão da migração, a fila de recebimento associada à VM é liberada e pode ser reutilizada para outra VM.

Observação O novo adaptador de rede pode não suportar VMQ.

Quando o NDIS solicita um driver de miniporta para liberar uma fila de recebimento VMQ, ele segue estas etapas:

  1. O adaptador de rede interrompe a transferência DMA de dados para receber buffers associados à fila de receção, após o que a fila deve entrar no estado DMA Parado. O adaptador de rede provavelmente parou a atividade DMA quando recebeu a solicitação de OID OID_RECEIVE_FILTER_CLEAR_FILTER para limpar o último filtro definido na fila de receção.

  2. O driver de miniporta gera uma indicação de status NDIS_STATUS_RECEIVE_QUEUE_STATE com o membro QueueState da estrutura NDIS_RECEIVE_QUEUE_STATE definido como NdisReceiveQueueOperationalStateDmaStopped para notificar o NDIS que a transferência de DMA foi interrompida.

  3. O driver de miniporta aguarda que todos os pacotes de recebimento indicados para essa fila sejam devolvidos ao driver de miniporta.

  4. O driver de miniporta libera toda a memória compartilhada alocada para os buffers de recebimento do adaptador de rede associados à fila chamando NdisFreeSharedMemory.

  5. O controlador de miniporta conclui a solicitação OID de OID_RECEIVE_FILTER_FREE_QUEUE para libertar a fila de receção.

Para obter mais informações sobre estados de fila, consulte Estados de Fila do NDIS VM (NDIS VM Queue States).