NdisClDropParty, fonction (ndis.h)

NdisClDropParty supprime une partie de la VC multipoint du client.

Syntaxe

NDIS_STATUS NdisClDropParty(
  [in]           NDIS_HANDLE NdisPartyHandle,
  [in, optional] PVOID       Buffer,
  [in, optional] UINT        Size
);

Paramètres

[in] NdisPartyHandle

Spécifie le handle identifiant la partie à supprimer sur la connexion multipoint. Le client a obtenu ce handle à partir d’un appel précédent à NdisClAddParty ou NdisClMakeCall.

[in, optional] Buffer

Pointeur vers une mémoire tampon allouée par l’appelant contenant toutes les données à transmettre pour fermer la connexion multipoint de la partie sur le nœud distant. Selon le support sous-jacent, ce pointeur peut avoir la valeur NULL.

[in, optional] Size

Spécifie la taille en octets dans La mémoire tampon, zéro si la mémoire tampon a la valeur NULL.

Valeur retournée

Lorsque NdisClDropParty retourne autre chose que NDIS_STATUS_PENDING, le client doit effectuer un appel interne à son Fonction ProtocolClDropPartyComplete . Sinon, NDIS appelle la fonction ProtocolClDropPartyComplete du client lorsque cette opération est terminée.

Remarques

Les clients appellent généralement NdisClDropParty dans l’une des circonstances suivantes :

  • Dans la liste Fonction ProtocolClIncomingDropParty pour supprimer le tiers donné d’une connexion multipoint.

    Cela se produit lorsqu’un tiers sur un nœud distant ferme sa connexion avec NdisClCloseCall. Lorsque NDIS appelle la fonction ProtocolClDropPartyComplete du client local, il peut libérer ou réutiliser la zone de contexte dans ProtocolPartyContext dans laquelle le client maintenait l’état de cette partie.

  • Avant que le client n’appelle NdisClCloseCall avec le dernier tiers sur une connexion multipoint que le client a configurée à l’origine avec NdisClMakeCall.

    Pour une telle fermeture initiée par le client de son propre appel multipoint, le client doit appeler NdisClDropParty une ou plusieurs fois pour supprimer toutes les autres parties restantes sur le vc multipoint.

L’appel d’un client à NdisClDropParty amène NDIS à appeler la fonction ProtocolCmDropParty du gestionnaire d’appels qui partage le même NdisVcHandle avec le vc multipoint. Le gestionnaire d’appels est chargé d’informer son homologue de nœud distant que la connexion de partie a été ou doit être fermée, en fonction du client qui a lancé l’opération drop-party.

En règle générale, un client doit appeler NdisClDropParty autant de fois qu’il a appelé NdisClAddParty avec un NdisVcHandle particulier obtenu à partir de NdisClMakeCall avant de fermer sa connexion multipoint avec NdisClCloseCall. Étant donné que les parties distantes peuvent lancer des fermetures de leurs connexions, ce qui provoque des appels au client local Fonction ProtocolClIncomingDropParty , le client local doit suivre le nombre de parties actives sur ses machines virtuelles multipoints afin de savoir combien d’appels il doit effectuer à NdisClDropParty avant de pouvoir appeler NdisClCloseCall.

Toutefois, le client n’est pas obligé de passer NdisClCloseCall le même NdisPartyHandle retourné par NdisClMakeCall lorsque le client a initialement configuré sa connexion multipoint. Le client peut libérer des parties sur son VC multipoint dans n’importe quel ordre, tant qu’il libère chaque NdisPartyHandle retourné par NdisClAddParty ou NdisClMakeCall dans ses appels à NdisClDropParty, suivi d’un appel final avec le dernier handle de partie à NdisClCloseCall pour le même VC multipoint. Une fois que le client a fermé son appel multipoint, il peut libérer le vc qu’il a créé à l’origine avec NdisCoDeleteVc.

L’appelant de NdisClDropParty doit considérer l’entrée NdisPartyHandle non valide dès qu’il effectue cet appel. S’il a stocké ce handle dans la zone de contexte de partie qu’il a allouée, le client La fonction ProtocolClDropPartyComplete doit réinitialiser la variable handle à NULL si elle réinitialise sa zone de contexte par partie pour la réutilisation lorsque la partie a été supprimé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 NdisClDropParty (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (consultez NdisClDropParty (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)

Voir aussi

NdisClAddParty

NdisClCloseCall

NdisClMakeCall

NdisCoDeleteVc

ProtocolClDropPartyComplete

ProtocolClIncomingDropParty

ProtocolCmDropParty