Partager via


Client-Initiated demande de modification des paramètres d’appel

Un client demande une modification de la qualité de service (QoS) sur une connexion virtuelle active (VC) avec NdisClModifyCallQoS.

La figure suivante montre le client d’un gestionnaire d’appels demandant une modification de la qualité de service.

Diagramme montrant un client d’un gestionnaire d’appels demandant une modification qoS sur un vc actif.

La figure suivante montre le client d’un pilote MCM demandant une modification de la qualité de service.

Diagramme illustrant un client d’un pilote MCM demandant une modification de QoS sur un vc actif.

Dans l’appel à NdisClModifyCallQoS, le client fournit :

  • Paramètre NdisVcHandle qui identifie le vc.

  • Pointeur vers une structure CO_CALL_PARAMETERS qui contient les paramètres d’appel demandés par le client.

Les circonstances dans lesquelles un client peut demander une modification de qoS sont déterminées par le protocole de signalisation.

L’appel à NdisClModifyCallQoS amène NDIS à appeler la fonction ProtocolCmModifyCallQoS du gestionnaire d’appels ou du pilote MCM, qui entre la structure NdisVcHandle et mise en mémoire tampon CO_CALL_PARAMETERS que le client transmet à NdisClModifyCallQoS. ProtocolCmModifyQoS communique avec des périphériques de contrôle réseau ou d’autres agents spécifiques au média, comme le nécessite son média, pour modifier les paramètres d’appel spécifiques au média pour une connexion virtuelle établie.

Après avoir communiqué avec le réseau et déterminé que les modifications ont réussi, un gestionnaire d’appels doit appeler NdisCmActivateVc(et un pilote MCM doit appeler NdisMCmActivateVc) pour activer le vc spécifié avec les nouveaux paramètres d’appel.

Si le réseau n’accepte pas les nouveaux paramètres d’appel ou si le pilote miniport sous-jacent ne peut pas accepter les paramètres, le gestionnaire d’appels ou le pilote MCM doit restaurer le vc à l’état qui existait avant toute tentative de modification et retourner NDIS_STATUS_FAILURE.

Pour indiquer la status de la demande de modification de qoS du client, un gestionnaire d’appels appelle NdisCmModifyCallQoSComplete et un pilote MCM appelle NdisMCmModifyCallQoSComplete. Dans cet appel, le gestionnaire d’appels ou le pilote MCM passe :

  • NDIS_STATUS qui indique la status de la demande.

  • NdisVcHandle qui identifie le vc.

  • Pointeur vers une structure CO_CALL_PARAMETERS qui contient les paramètres d’appel pour le vc.

Si le protocole de signalisation l’autorise, le gestionnaire d’appels ou le pilote MCM peut transmettre les paramètres d’appel modifiés au client. Ces modifications peuvent être le produit d’une négociation avec le réseau ou fournies par le gestionnaire d’appels ou le pilote MCM lui-même. Un gestionnaire d’appels ou un pilote MCM doit indiquer que les paramètres d’appel ont été modifiés en définissant l’indicateur CALL_PARAMETERS_CHANGED dans la structure CO_CALL_PARAMETERS.

L’appel à Ndis(M)CmModifyCallQoSComplete amène NDIS à appeler la fonction ProtocolClModifyCallQoSComplete du client. NDIS transmet les éléments suivants à ProtocolClModifyCallQoSComplete :

  • NDIS_STATUS qui indique la status de la demande du client de modifier la qualité de service.

  • Un handle ProtocolVcContext qui identifie le vc.

  • Pointeur vers une structure CO_CALL_PARAMETERS qui contient les paramètres d’appel passés par le gestionnaire d’appels ou le pilote MCM à Ndis(M)CmModifyCallQoSComplete.

Si l’indicateur CALL_PARAMETERS_CHANGED est défini dans la structure CO_CALL_PARAMETERS, le client doit examiner les paramètres d’appel retournés et déterminer si les modifications sont acceptables. Si l’appel du client à NdisClModifyCallQoS réussit, ProtocolClModifyCallQoSComplete peut accepter la modification qoS en retournant simplement le contrôle. Sinon, ProtocolClModifyCallQoSComplete peut poursuivre la négociation avec le gestionnaire d’appels si le protocole de signalisation l’autorise et tant que le développeur du client impose une limite raisonnable au nombre de renégociations possibles. ProtocoleClModifyCallQoSComplete peut également simplement supprimer l’appel avec NdisClCloseCall (voir Demande lancée par le client pour fermer un appel) chaque fois que le gestionnaire d’appels rejette une demande de modification de la Qualité de service et que la QoS établie précédemment est devenue inacceptable pour le client.