Partager via


PROTOCOL_CL_ADD_PARTY_COMPLETE fonction de rappel (ndis.h)

La fonction ProtocolClAddPartyComplete est requise pour les clients NDIS orientés connexion qui configurent des connexions multipoint. Ces clients doivent avoir fonctions ProtocolClAddPartyComplete pour effectuer les opérations asynchrones qu’ils lancent avec NdisClAddParty. Dans le cas contraire, la fonction ProtocolClAddPartyComplete d’un pilote de protocole peut simplement retourner le contrôle.

Remarque Vous devez déclarer la fonction à l’aide du type PROTOCOL_CL_ADD_PARTY_COMPLETE. Pour plus d’informations, consultez la section Exemples suivants.
 

Syntaxe

PROTOCOL_CL_ADD_PARTY_COMPLETE ProtocolClAddPartyComplete;

void ProtocolClAddPartyComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolPartyContext,
  [in] NDIS_HANDLE NdisPartyHandle,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

Paramètres

[in] Status

Spécifie l’état final de l’opération de complément initiée par le client, qui peut être l’une des suivantes :

NDIS_STATUS_SUCCESS

La partie donnée a été ajoutée sur le vc multipoint actif du client.

NDIS_STATUS_RESOURCES

NDIS n’a pas pu allouer suffisamment de ressources pour suivre la nouvelle partie.

NDIS_STATUS_FAILURE

Le client a passé un NdisVcHandle non valide à NdisClAddParty .

NDIS_STATUS_XXX

La fonction protocolCmAddParty du gestionnaire d’appels a retourné une valeur déterminée par CM pour indiquer pourquoi elle n’a pas pu ajouter la partie à la vc.

[in] ProtocolPartyContext

Spécifie le handle fourni par le client passé à l’origine à NdisClAddParty.

[in] NdisPartyHandle

Si 'état est NDIS_STATUS_SUCCESS, ce handle fourni par NDIS représente l’association entre le gestionnaire d’appels et le client concernant cette partie. Sinon, la tentative d’ajout d’une partie a échoué et le client doit considérer ce paramètre comme un handle non valide.

[in] CallParameters

Pointeur vers une structure de type CO_CALL_PARAMETERS, initialement configuré par le client pour son appel à NdisClAddParty, mais éventuellement modifié par la suite par le gestionnaire d’appels.

Valeur de retour

Aucun

Remarques

Un appel à ProtocolClAddPartyComplete indique l’achèvement de l’opération asynchrone lancée lorsque le client appelé NdisClAddParty. Si le d’état d’entrée est défini sur autre chose que NDIS_STATUS_SUCCESS, ProtocolClAddPartyComplete peut libérer ou réutiliser les mémoires tampons allouées par le client à ProtocolPartyContext et à CallParameters.

Si la tentative d’ajout d’une partie a réussi, ProtocolClAddPartyComplete doit enregistrer l’entrée NdisPartyHandle pour les appels ultérieurs aux fonctions de bibliothèque NDIS concernant cette partie dans la zone ProtocolPartyContext du client. Par exemple, le client doit passer ce handle dans un appel ultérieur à NdisClDropParty finalement, sauf si le tiers distant qu’il représente ferme d’abord sa connexion.

La structure à CallParameters initialement a été allouée et initialisée par le client, qui a passé ce pointeur à
NdisClAddParty. Toutefois, le gestionnaire d’appels a peut-être modifié les valeurs fournies par le client pour refléter les résultats de la négociation du CM avec le réseau ou avec un homologue de signalisation lors du traitement de la demande tierce du client. Pour déterminer si le gestionnaire d’appels a apporté des modifications, ProtocolClAddPartyComplete peut vérifier le Indicateurs membre de cette structure pour déterminer si CALL_PARAMETERS_CHANGED est défini. Si c’est le cas, ProtocolClAddPartyComplete doit mettre à jour l’état par partie que le client gère pour cet appel à ProtocolPartyContext sauf s’il trouve les modifications de cm inacceptables. Le protocole de signalisation particulier détermine ce que le client peut faire dans ce cas. En règle générale, un client appelle NdisClDropParty s’il trouve les paramètres d’appel modifiés par CM inacceptables.

Selon le protocole de signalisation du gestionnaire d’appels, les paramètres de trafic à CallParameters peuvent être identiques pour toutes les parties sur n’importe quelle connexion multipoint particulière. Autrement dit, comme le client d’un tel gestionnaire d’appels ajoute des parties sur une connexion multipoint que le client a initialement configurée avec NdisClMakeCall, il peut fournir uniquement l’adresse cible de chaque partie et laisser les paramètres de trafic comme configurés à l’origine pour le vc multipoint chaque fois qu’il appelle NdisClAddParty.

exemples de

Pour définir une fonction ProtocolClAddPartyComplete, vous devez d’abord fournir une déclaration de fonction qui identifie le type de fonction que vous définissez. Windows fournit un ensemble de types de fonctions pour les pilotes. La déclaration d’une fonction à l’aide des types de fonctions permet d'Analyse du code pour les pilotes, de vérificateur de pilotes statiques (SDV) et d’autres outils de vérification recherchent des erreurs, et il est nécessaire d’écrire des pilotes pour le système d’exploitation Windows.

Par exemple, pour définir une fonction ProtocolClAddPartyComplete nommée « MyClAddPartyComplete », utilisez le type PROTOCOL_CL_ADD_PARTY_COMPLETE comme indiqué dans cet exemple de code :

PROTOCOL_CL_ADD_PARTY_COMPLETE MyClAddPartyComplete;

Ensuite, implémentez votre fonction comme suit :

_Use_decl_annotations_
VOID
 MyClAddPartyComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolPartyContext,
    NDIS_HANDLE  NdisPartyHandle,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

Le type de fonction PROTOCOL_CL_ADD_PARTY_COMPLETE est défini dans le fichier d’en-tête Ndis.h. Pour identifier plus précisément les erreurs lorsque vous exécutez les outils d’analyse du code, veillez à ajouter l’annotation Use_decl_annotations à votre définition de fonction. L’annotation Use_decl_annotations garantit que les annotations appliquées au type de fonction PROTOCOL_CL_ADD_PARTY_COMPLETE dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les déclarations de fonction, consultez Déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes NDIS.

Pour plus d’informations sur Use_decl_annotations, consultez annoter le comportement de la fonction.

Exigences

Exigence Valeur
client minimum pris en charge Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir ProtocolClAddPartyComplete (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir ProtocolClAddPartyComplete (NDIS 5.1)) dans Windows XP.
plateforme cible Windows
d’en-tête ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

CO_CALL_PARAMETERS

NdisClAddParty

NdisClDropParty

NdisClMakeCall

NdisCmAddPartyComplete

NdisMCmAddPartyComplete

ProtocolClIncomingDropParty

ProtocolCmAddParty