Partager via


NdisCmMakeCallComplete, fonction (ndis.h)

NdisCmMakeCallComplete retourne la status finale de la demande d’un client, pour laquelle le gestionnaire d’appels a précédemment renvoyé NDIS_STATUS_PENDING, pour effectuer un appel sortant.

Syntaxe

void NdisCmMakeCallComplete(
  [in]           NDIS_STATUS         Status,
  [in]           NDIS_HANDLE         NdisVcHandle,
  [in, optional] NDIS_HANDLE         NdisPartyHandle,
  [in, optional] NDIS_HANDLE         CallMgrPartyContext,
  [in]           PCO_CALL_PARAMETERS CallParameters
);

Paramètres

[in] Status

Spécifie la status finale de la tentative d’établir la connexion, soit NDIS_STATUS_SUCCESS, soit n’importe quel NDIS_STATUS_ XXX déterminé par cm, sauf NDIS_STATUS_PENDING.

[in] NdisVcHandle

Spécifie le handle du vc créé par le client, que le gestionnaire d’appels a obtenu à l’origine en tant que paramètre d’entrée pour sa fonction ProtocolCoCreateVc . Plus récemment, le cm a obtenu ce handle à partir de son état par vc désigné par le CallMgrVcContext passé à sa fonction ProtocolCmMakeCall .

[in, optional] NdisPartyHandle

Spécifie le handle à la partie initiale sur le vc multipoint créé par le client, que le gestionnaire d’appels a obtenu en tant que paramètre d’entrée pour sa fonction ProtocolCmMakeCall . Si le NdisVcHandle donné représentait un vc point à point, ce paramètre était NULL.

[in, optional] CallMgrPartyContext

Spécifie le handle fourni par CM à une zone de contexte résident allouée à l’appelant, dans laquelle le gestionnaire de gestion conserve les informations d’état par partie, ou NULL si NdisPartyHandle a la valeur NULL. Pour un vc multipoint, NDIS transmet ce handle CallManagerPartyContext fourni par CM dans tous les appels suivants aux fonctions ProtocolCmXxx qui concernent cette partie. Sinon, NDIS ignore ce paramètre.

[in] CallParameters

Pointeur vers une structure de type CO_CALL_PARAMETERS qui spécifie les paramètres d’appel configurés pour cette connexion si Status est NDIS_STATUS_SUCCESS.

Valeur de retour

None

Remarques

Un gestionnaire d’appels autonome doit appeler NdisMCmMakeCallComplete avec NDIS_STATUS_SUCCESS uniquement si le pilote miniport sous-jacent est prêt à effectuer des transferts de données sur le vc. Autrement dit, le gestionnaire d’appels a négocié avec le réseau pour établir des paramètres d’appel pour le vc et a appelé NdisCmActivateVc avec succès.

Un gestionnaire d’appels autonome doit appeler NdisCmMakeCallComplete si sa fonction ProtocolCmMakeCall a précédemment retourné NDIS_STATUS_PENDING pour le NdisVcHandle donné. Le client qui a lancé l’appel sortant en attente ne peut pas utiliser le vc pour effectuer des transferts tant que le cm n’appelle pas NdisCmMakeCallComplete avec NDIS_STATUS_SUCCESS.

Même si la tentative de connexion a échoué, ni NDIS ni le client ne peuvent libérer les ressources qu’ils ont allouées pour maintenir l’état jusqu’à ce que l’appel du cm à NdisCmMakeCallComplete provoque un appel à ce client Fonction ProtocolClMakeCallComplete . En fait, le fait de ne pas appeler NdisCmMakeCallComplete en cas d’échec de la configuration d’une telle connexion entraîne également une fuite de mémoire dans le gestionnaire d’appels ; il empêche le client de détruire le vc qu’il a créé pour son appel sortant ayant échoué, le cm n’est donc pas appelé pour libérer les ressources qu’il a allouées à ce vc.

Si la cm transmet une erreur, telle que NDIS_STATUS_FAILURE, pour l’état, elle doit considérer le NdisPartyHandle, le cas échéant, non valide dès qu’il appelle NdisCmMakeCallComplete. Le cm peut libérer (ou réinitialiser pour réutilisation) toutes les ressources qu’il a allouées pour conserver l’état pour la partie donnée lorsque NdisCmMakeCallComplete retourne le contrôle. La fonction ProtocolCoDeleteVc de la cm sera ensuite appelée pour libérer toutes les ressources que le cm a allouées pour le suivi de l’état du vc créé par le client chaque fois que le cm transmet une erreur status à NdisCmMakeCallComplete.

Au cours de la configuration d’un appel sortant lancé par le client, le cm peut modifier les paramètres d’appel fournis par le client passés à l’origine à sa fonction ProtocolCmMakeCall . Si c’est le cas, le cm doit transmettre ses modifications dans la mémoire tampon à l’emplacement CallParameters lorsqu’il appelle NdisCmMakeCallComplete. Si le client trouve ces paramètres d’appel modifiés inacceptables, il supprime l’appel, ce qui provoque également un appel à la fonction ProtocolCoDeleteVc du cm.

Seuls les gestionnaires d’appels autonomes, qui s’inscrivent eux-mêmes auprès de NDIS en tant que pilotes de protocole, peuvent appeler NdisCmMakeCallComplete. Pilotes Miniport qui fournissent un appel de prise en charge intégrée de la gestion des appels NdisMCmMakeCallComplete à la place.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir NdisCmMakeCallComplete (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir NdisCmMakeCallComplete (NDIS 5.1)) dans Windows XP.
Plateforme cible Desktop (Expérience utilisateur)
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI Irql_CallManager_Function(ndis)

Voir aussi

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisMCmMakeCallComplete

ProtocolClMakeCallComplete

ProtocolCmMakeCall

ProtocolCoDeleteVc