NdisClAddParty, fonction (ndis.h)

NdisClAddParty ajoute une partie sur le vc multipoint du client.

Syntaxe

NDIS_STATUS NdisClAddParty(
  [in]      NDIS_HANDLE         NdisVcHandle,
  [in]      NDIS_HANDLE         ProtocolPartyContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters,
  [out]     PNDIS_HANDLE        NdisPartyHandle
);

Paramètres

[in] NdisVcHandle

Pointeur vers le handle VC retourné par NdisCoCreateVc.

[in] ProtocolPartyContext

Spécifie le handle d’une zone de contexte résident allouée à l’appelant dans laquelle le client maintient l’état par partie si son appel réussit.

[in, out] CallParameters

Pointeur vers une structure de type CO_CALL_PARAMETERS dans laquelle l’appelant a spécifié les informations d’adressage de la partie à ajouter sur son vc multipoint.

[out] NdisPartyHandle

Pointeur vers une variable à définir par NDIS si l’opération du complément réussit.

Valeur retournée

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

Remarques

Avant d’appeler NdisClAddParty, un client doit configurer une connexion multipoint sur son VC avec NdisClMakeCall, ainsi que l’allocation et l’initialisation de sa zone de contexte pour que la partie à ajouter. Les clients passent généralement un pointeur vers une zone de contexte telle que ProtocolPartyContext et un pointeur vers une variable dans cette zone de contexte en tant que paramètres NdisPartyHandle lorsqu’ils appellent NdisClAddParty.

Un appel à NdisClAddParty amène NDIS à transférer cette demande à la fonction ProtocolCmAddParty du gestionnaire d’appels avec lequel le client partage le NdisVcHandle donné . Le gestionnaire d’appels retourne une erreur status immédiatement ou, plus souvent, NDIS_STATUS_PENDING s’il tente de répondre à cette demande. Si sa tentative est rejetée sur le point de terminaison distant ou par le pilote miniport sous-jacent, le gestionnaire d’appels retourne une erreur finale status, comme NDIS_STATUS_FAILURE, lorsqu’il appelle NdisCmAddPartyComplete ou NdisMCmAddPartyComplete. Le client est La fonction ProtocolClAddPartyComplete doit case activée l’argument d’état d’entrée pour NDIS_STATUS_SUCCESS avant de continuer.

Le support réseau sous-jacent détermine si un client peut spécifier des paramètres de trafic par partie sur un vc multipoint.

Si le support réseau sous-jacent ne prend pas en charge les paramètres de trafic par partie sur les machines virtuelles multipoints, un gestionnaire d’appels peut effectuer l’une des opérations suivantes chaque fois qu’un client tente d’ajouter une partie avec une spécification dans CallParameters qui ne correspond pas aux paramètres de trafic déjà établis pour ce vc :

  • Rejeter la demande d’ajout d’une nouvelle partie.
  • Réinitialisez les paramètres de trafic à ceux déjà établis pour le vc multipoint lorsqu’il a correctement ajouté le tiers sur cette VC.
  • Modifiez les paramètres de trafic pour chaque partie déjà sur le VC lorsqu’il a correctement ajouté la nouvelle partie.
Si l’opération du complément réussit, la variable dans NdisPartyHandle a été définie par NDIS sur un handle valide partagé entre NDIS, le client et le gestionnaire d’appels. Le client doit traiter ce handle fourni par NDIS comme une variable opaque à passer, sans modification et sans interprétation, dans les appels suivants aux fonctions NdisCl/CoXxx concernant la partie nouvellement ajoutée.

À son tour, NDIS transmet le handle ProtocolPartyContext fourni par le client dans les appels suivants aux fonctions ProtocolClXxx du client qui concernent cette partie nouvellement ajoutée, y compris l’appel à ProtocolClAddPartyComplete.

Si un appel multipoint autorise les transferts dans les deux sens et/ou les transferts par partie avec des paramètres de trafic par partie dépend du support du pilote miniport sous-jacent auquel le client est lié. Le NdisPartyHandle représente uniquement la partie spécifique ajoutée par un appel réussi à NdisClAddParty, plutôt que le vc multipoint. Par conséquent, le client peut utiliser sa zone ProtocolPartyContext uniquement pour les demandes de gestion des appels spécifiques à une partie ultérieures. Pour les transferts de données sur un support réseau qui ne prennent pas en charge les transferts par partie ou les paramètres de trafic, le client doit utiliser le NdisVcHandle à 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 NdisClAddParty (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir NdisClAddParty (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

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClCloseCall

NdisClDropParty

NdisClMakeCall

NdisCmAddPartyComplete

NdisCoCreateVc

NdisCoOidRequest

NdisCoOidRequestComplete

NdisMCmAddPartyComplete

ProtocolClAddPartyComplete

ProtocolCmAddParty