Partager via


Prise en charge de la migration en direct NDIS VMQ

Pour prendre en charge la migration dynamique, une machine virtuelle peut être suspendue à n’importe quelle instruction ou limite d’E/S en attente. Autrement dit, la machine virtuelle risque de ne pas terminer les demandes de réception en attente. Par conséquent, le fournisseur de service virtuel du réseau (VSP) retourne tous les paquets reçus à l'adaptateur réseau sous-jacent que la machine virtuelle n'a pas renvoyés.

Note Dans Hyper-V, une partition enfant est également appelée machine virtuelle.

Lorsque la machine virtuelle est redémarrée sur un autre hôte, le fournisseur de services virtuels réseau (VSP) sur le nouvel hôte gère les paquets de réception retournés par la machine virtuelle reprise et ne les transmet pas au nouveau sous-système du pilote miniport. Une fois la migration terminée, la file d’attente de réception associée à la machine virtuelle est libérée et peut être réutilisée pour une autre machine virtuelle.

Note La nouvelle carte réseau peut ne pas prendre en charge VMQ.

Lorsque NDIS demande à un pilote miniport de libérer une file d’attente de réception VMQ, procédez comme suit :

  1. La carte réseau arrête le transfert DMA de données pour recevoir des mémoires tampons associées à la file d’attente de réception, après quoi la file d’attente doit entrer l’état DMA Arrêté. La carte réseau a probablement arrêté l’activité DMA lorsqu’elle a reçu la requête OID OID_RECEIVE_FILTER_CLEAR_FILTER pour effacer le dernier filtre défini sur la file d’attente de réception.

  2. Le pilote miniport génère une indication d’état NDIS_STATUS_RECEIVE_QUEUE_STATE avec le membre QueueState de la structure NDIS_RECEIVE_QUEUE_STATE définie sur NdisReceiveQueueOperationalStateDmaStopped pour informer NDIS que le transfert DMA a été arrêté.

  3. Le pilote miniport attend que tous les paquets de réception indiqués pour que cette file d’attente soit retournée au pilote miniport.

  4. Le pilote miniport libère toute la mémoire partagée allouée pour les mémoires tampons de réception de la carte réseau associées à la file d’attente en appelant NdisFreeSharedMemory.

  5. Le pilote miniport termine la requête OID OID_RECEIVE_FILTER_FREE_QUEUE pour libérer la file d’attente de réception.

Pour plus d’informations sur les états de file d’attente, consultez États de la file d’attente des machines virtuelles NDIS.