Partager via


Macro NdisMCmMakeCallComplete (ndis.h)

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

Syntaxe

void NdisMCmMakeCallComplete(
   _S_,
   _VH_,
   _PH_,
   _CC_,
   _CP_
);

Paramètres

_S_

Spécifie la status finale de la tentative de connexion, soit NDIS_STATUS_SUCCESS, soit n’importe quel NDIS_STATUS_ XXX déterminé par l’appelant, à l’exception de NDIS_STATUS_PENDING.

_VH_

Spécifie le handle du vc créé par le client, que le pilote MCM a obtenu en tant que paramètre d’entrée pour sa fonction ProtocolCoCreateVc et, plus récemment, à partir de la fonction CallMgrVcContext passé à sa fonction ProtocolCmMakeCall .

_PH_

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

_CC_

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

_CP_

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 pilote MCM doit appeler NdisMCmMakeCallComplete avec NDIS_STATUS_SUCCESS uniquement s’il est prêt à effectuer des transferts de données sur le VC. Autrement dit, le pilote MCM a négocié avec le réseau pour établir les paramètres d’appel pour le vc, configuré une carte réseau pour ces paramètres d’appel et appelé NdisMCmActivateVc pour notifier NDIS de l’activation de vc.

Un pilote MCM doit appeler NdisMCmMakeCallComplete 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 pilote miniport n’appelle pas NdisMCmMakeCallComplete 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 pilote MCM à NdisMCmMakeCallComplete provoque un appel à celui de ce client Fonction ProtocolClMakeCallComplete . En fait, le fait de ne pas appeler NdisMCmMakeCallComplete en cas d’échec de la configuration d’une telle connexion entraîne également une fuite de mémoire dans le pilote MCM ; cela empêche le client de détruire le vc qu’il a créé pour son appel sortant ayant échoué, la fonction ProtocolCoDeleteVc du pilote MCM n’est pas appelée pour libérer les ressources que le pilote miniport a allouées pour cette VC.

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

Lors de la configuration d’un appel sortant initié par le client, le pilote MCM peut modifier les paramètres d’appel fournis par le client transmis à l’origine à sa fonction ProtocolCmMakeCall . Si c’est le cas, le pilote MCM doit passer ses modifications dans la mémoire tampon à l’emplacement CallParameters lorsqu’il appelle NdisMCmMakeCallComplete. Si le client trouve ces paramètres d’appel modifiés inacceptables, il supprime alors l’appel, ce qui provoque également un appel à la fonction ProtocolCoDeleteVc du pilote MCM.

Seuls les pilotes miniport orientés connexion qui fournissent une prise en charge intégrée de la gestion des appels peuvent appeler NdisMCmMakeCallComplete. Les gestionnaires d’appels autonomes, qui s’inscrivent auprès de NDIS en tant que pilotes de protocole, appellent plutôt NdisCmMakeCallComplete .

Configuration requise

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

Voir aussi

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCmMakeCallComplete

ProtocolClMakeCallComplete

ProtocolCmMakeCall

ProtocolCoDeleteVc