Différences dans les connexions virtuelles
Un gestionnaire d’appels utilise des machines virtuelles de signalisation pour envoyer et recevoir des messages de signalisation vers et depuis des entités réseau, telles que des commutateurs. Les machines virtuelles de signalisation d’un gestionnaire d’appels sont visibles par NDIS. Le gestionnaire d’appels doit créer, activer, désactiver et supprimer toutes les machines virtuelles avec des appels à NDIS. Toutefois, les machines virtuelles de signalisation d’un pilote MCM sont opaques pour NDIS. Un pilote MCM ne crée pas, n’active, ne désactive pas et ne supprime pas de machines virtuelles de signalisation avec des appels à NDIS. Au lieu de cela, un pilote MCM effectue de telles opérations en interne. Un pilote MCM doit appeler NDIS pour effectuer des opérations sur des machines virtuelles utilisées pour envoyer ou recevoir des données client. Cela est dû au fait que NDIS doit effectuer le suivi des machines virtuelles clientes.
Étant donné que le pilote MCM est à la fois un gestionnaire d’appels et un pilote miniport, certaines fonctions orientées connexion sont redondantes. Plus précisément, MiniportCoCreateVc et MiniportCoDeleteVc sont redondants et ne sont donc pas fournis par un pilote MCM. Les opérations vc sont gérées par :
ProtocolCoCreateVc et ProtocolCoDeleteVc d’un pilote MCM fonctionnent lorsqu’un client demande la création ou la suppression d’un vc.
NdisMCmCreateVc et NdisMCmDeleteVc lorsque le pilote MCM crée ou supprime un vc.
NdisMCmActivateVc et NdisCmDeactivateVc lorsque le pilote MCM active ou désactive un vc.
Un pilote MCM doit fournir une fonction MiniportCoOidRequest pour qu’un client l’utilise dans l’interrogation ou la définition des informations du pilote miniport, et une fonction MiniportCoSendNetBufferLists pour gérer les opérations d’envoi à partir d’un client.