Partager via


Chemin de transmission VMQ

Pour les demandes de transmission, le pilote overlying utilise la macro NET_BUFFER_LIST_RECEIVE_QUEUE_ID pour définir l’identificateur de file d’attente de la file d’attente sortante dans les données sortantes avec les informations OOB NetBufferListFilteringInfo . Les informations NetBufferListFilteringInfo sont spécifiées dans une structure NDIS_NET_BUFFER_LIST_FILTERING_INFO .

Les pilotes NDIS peuvent utiliser la macro NET_BUFFER_LIST_RECEIVE_QUEUE_ID pour définir ou obtenir l’identificateur de file d’attente d’une structure NET_BUFFER_LIST . Si un groupe de files d’attente contient plusieurs files d’attente de machines virtuelles, l’identificateur de file d’attente du paquet de transmission peut être défini sur l’identificateur de file d’attente de l’une des files d’attente de machines virtuelles du groupe.

Les pilotes de protocole définissent le NDIS_SEND_FLAGS_SINGLE_QUEUE bit sur le paramètre SendFlags de la fonction NdisSendNetBufferLists pour indiquer que toutes les structures de transmission NET_BUFFER_LIST dans l’appel concernent la même file d’attente de transmission.

Les pilotes Miniport définissent le bit NDIS_SEND_COMPLETE_FLAGS_SINGLE_QUEUE sur le paramètre SendCompleteFlags de la fonction NdisMSendNetBufferListsComplete pour indiquer que tous les NET_BUFFER_LISTs de l’appel ont été envoyés dans la même file d’attente de transmission.

Pour plus d’informations sur les tests de filtre, consultez Opérations de filtre VMQ.

Note Lorsqu’une machine virtuelle est supprimée (par exemple, lors de la migration dynamique de la machine virtuelle), il est possible que le pilote miniport reçoive un NBL qui contient une valeur QueueId non valide. Si cela se produit, le miniport doit ignorer l’ID de file d’attente non valide et utiliser 0 (la file d’attente par défaut) à la place. Le QueueId se trouve dans la partie NetBufferListFilteringInfo des données OOB du NBL et est récupéré à l’aide de la macro NET_BUFFER_LIST_RECEIVE_QUEUE_ID .