Fonction NdisClCloseCall (ndis.h)
NdisClCloseCall demande qu’un appel sur le vc spécifié soit supprimé.
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 le 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 vers la dernière partie à supprimer sur un VC multipoint ou NULL. S’il s’agit d’un vc multipoint, le client a obtenu ce handle à partir d’un appel précédent à NdisClMakeCall ou à NdisClAddParty.
[in, optional] Buffer
Pointeur vers une mémoire tampon allouée à 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 avoir la valeur NULL.
[in] Size
Spécifie la taille, en octets, à La mémoire tampon, zéro si La mémoire tampon a la valeur NULL.
Valeur retournée
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 qu’il ait été proposé par un homologue distant et accepté par le client Fonction ProtocolClIncomingCall .
-
Dans la liste Fonction ProtocolClIncomingCloseCall pour supprimer un appel établi.
Cela se produit lorsque la partie distante ferme un appel entrant que la partie distante a lancé à l’origine et que le client a accepté. Pour les appels sortants initiés par le client, cela se produit soit lorsque la partie distante ferme la connexion point à point sur le nœud distant, soit lorsque la dernière partie restante d’un vc multipoint ferme l’appel sur le nœud distant.
-
Dans la liste Fonction ProtocolClMakeCallComplete pour supprimer une tentative lancée par le client d’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 le vc est inacceptable pour le client.
-
Dans la liste Fonction ProtocolClModifyCallQoSComplete 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 qualité de service modifiée par CM retournée à ProtocolClModifyCallQoSComplete n’est pas acceptable pour le client.
L’appel d’un client à NdisClCloseCall amène NDIS à marquer le NdisVcHandle comme fermant et à appeler la fonction ProtocolCmCloseCall du CM.
Pour supprimer un appel établi sur un vc multipoint créé par le client, le client doit appeler NdisClDropParty une ou plusieurs fois pour libérer tous les tiers sauf la dernière partie sur le vc avant d’appeler NdisClCloseCall. Le gestionnaire d’appels échouera la demande du client de fermer un appel multipoint si le vc donné a encore plusieurs parties connectées. Le NdisPartyHandle passé à 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 à une demande d’appel multipoint initiée par le client pour que leurs connexions soient fermées, NDIS appelle la fonction ProtocolClDropParty de ce client tant qu’il existe plusieurs parties en suspens sur le vc multipoint créé par le client. Lorsque la dernière partie distante restante ferme sa connexion, NDIS appelle le client Fonction ProtocolClIncomingCloseCall à la place. Par conséquent, la fonction ProtocolClIncomingCloseCall de tout client qui configure des connexions multipoints doit identifier la dernière partie restante sur ses machines virtuelles multipoints et passer 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 pour l’état par partie qu’il maintenait. Toutefois, le client ne peut pas libérer ou réutiliser ses ressources par vc de la même manière à l’issue de l’opération qu’il a lancée avec NdisClCloseCall , car le NdisVcHandle, qui ne peut pas être réutilisé pour effectuer un autre appel car il est marqué comme fermant, est toujours valide tant que le VC n’est pas détruit. Soit le client doit appeler NdisCoDeleteVc s’il a créé le vc pour un appel sortant avant de libérer ou de réinitialiser ses ressources par vc, soit 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal 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 (consultez NdisClCloseCall (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_Protocol_Driver_Function(ndis) |