NdisClCloseCall, fonction (ndis.h)
NdisClCloseCall demande qu’un appel sur le vc spécifié soit détruit.
Syntaxe
NDIS_STATUS NdisClCloseCall(
[in] NDIS_HANDLE NdisVcHandle,
[in, optional] NDIS_HANDLE NdisPartyHandle,
[in, optional] PVOID Buffer,
[in] UINT Size
);
Paramètres
[in] NdisVcHandle
Gérez la vc de l’appel en cours de fermeture ou de déconnexion. Ce handle a été fourni par NDIS lorsque le vc a été créé à l’origine avec NdisCoCreateVc, que ce soit par le client en préparation d’un appel sortant ou par le gestionnaire d’appels en préparation de la distribution d’un appel entrant au client.
[in, optional] NdisPartyHandle
Gérez la dernière partie à supprimer sur un NULL multipoint ouNULL. S’il s’agit d’une vc multipoint, le client a obtenu ce handle à partir d’un appel précédent vers NdisClMakeCall ou NdisClAddParty.
[in, optional] Buffer
Pointeur vers une mémoire tampon allouée par l’appelant contenant toutes les données à transmettre à la partie sur le nœud distant lorsque la connexion est fermée. Selon le support sous-jacent, ce pointeur peut être NULL.
[in] Size
Spécifie la taille, en octets, au de la mémoire tampon, zéro si tampon est NULL.
Valeur de retour
Lorsque NdisClCloseCall retourne autre chose que NDIS_STATUS_PENDING, le client doit effectuer un appel interne à son Fonction ProtocolClCloseCallComplete. Sinon, NDIS appelle la fonction ProtocolClCloseCallComplete du client lorsque cette opération est terminée.
Remarques
Les clients appellent généralement NdisClCloseCall dans l’une des circonstances suivantes :
- Pour fermer un appel établi, que l’appel ait été lancé par le client avec NdisClMakeCall ou a été proposé par un homologue distant et accepté par le client ProtocolClIncomingCall fonction.
-
À partir de
ProtocolClIncomingCloseCall fonction pour supprimer un appel établi.
Cela se produit lorsque la partie distante ferme un appel entrant lancé par le tiers distant et que le client a accepté. Pour les appels sortants initiés par le client, cela se produit lorsque la partie distante ferme la connexion point à point sur le nœud distant ou lorsque la dernière partie restante d’un vc multipoint ferme l’appel sur le nœud distant.
-
À partir de
ProtocolClMakeCallComplete fonction de destruction d’une tentative lancée par le client pour effectuer un appel sortant.
Cela se produit si le gestionnaire d’appels a modifié les paramètres d’appel spécifiés par le client passés à NdisClMakeCall et que le client trouve ces modifications inacceptables.
-
À partir de la fonction ProtocolClIncomingQoSChange pour supprimer un appel établi.
Cela se produit si une modification qoS proposée par l’autre partie sur la vc est inacceptable pour le client.
-
À partir de
ProtocolClModifyCallQoSComplete fonction pour supprimer un appel établi.
Cela se produit si une modification de qoS proposée par le client sur le vc n’est pas acceptée et que la qoS modifiée par CM retournée à ProtocolClModifyCallQoSComplete est inacceptable pour le client.
L’appel d’un client à NdisClCloseCall permet à NDIS de marquer le NdisVcHandle comme fermant et d’appeler la fonction ProtocolCmCloseCall de cm.
Pour supprimer un appel établi sur une vc multipoint créée par le client, le client doit appeler NdisClDropParty une ou plusieurs fois pour libérer tout le monde, mais le dernier tiers sur la vc avant d’appeler NdisClCloseCall. Le gestionnaire d’appels échoue à la demande d’un client pour fermer un appel multipoint si le vc donné a toujours plusieurs parties connectées. Le NdisPartyHandle transmis à NdisClCloseCall peut être n’importe quel handle valide que le client a obtenu à partir de ses appels précédents à NdisClAddParty ou NdisClMakeCall avec le NdisVcHandle donné.
En tant que parties distantes d’une demande d’appel multipoint initiée par le client indiquant que leurs connexions sont fermées, NDIS appelle la fonction ProtocolClDropParty du client tant que plusieurs parties en attente existent sur la vc multipoint créée par le client. Lorsque le dernier tiers distant ferme sa connexion, NDIS appelle le client ProtocolClIncomingCloseCall fonction à la place. Par conséquent, la fonction ProtocolClIncomingCloseCall de tout client qui configure des connexions multipoint doit identifier la dernière partie restante sur ses machines virtuelles multipoints et transmettre le NdisPartyHandle approprié à NdisClCloseCall.
Une fois que le client a publié un NdisPartyHandle avec NdisClCloseCall, il peut libérer (ou réinitialiser pour réutilisation) les ressources de l’état par partie qu’il maintenait. Toutefois, le client ne peut pas libérer ou réutiliser ses ressources par VC de manière similaire à l’achèvement de l’opération qu’il a lancée avec NdisClCloseCall parce que le NdisVcHandle, qui ne peut pas être réutilisé pour effectuer un autre appel, car il est marqué comme fermant, est toujours valide jusqu’à ce que la vc soit détruite. Soit le client doit appeler NdisCoDeleteVc s’il a créé le vc pour un appel sortant avant qu’il ne libère ou réinitialise ses ressources par VC, ou le client doit différer la mise en production ou la réinitialisation de ces ressources jusqu’à ce que sa fonction ProtocolCoDeleteVc soit appelée.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir NdisClCloseCall (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir NdisClCloseCall (NDIS 5.1)) dans Windows XP. |
plateforme cible | Bureau |
d’en-tête | ndis.h (include Ndis.h) |
bibliothèque | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
règles de conformité DDI | Irql_Protocol_Driver_Function(ndis) |