PROTOCOL_CM_ADD_PARTY fonction de rappel (ndis.h)

La fonction ProtocolCmAddParty est une fonction obligatoire. ProtocolCmAddParty configure les paramètres spécifiques au média pour ajouter une partie à un appel multipoint existant, stocke les données d’état pour le nouveau tiers et entraîne l’ajout de la partie à l’appel.

Note Vous devez déclarer la fonction à l’aide du type PROTOCOL_CM_ADD_PARTY . Pour plus d’informations, consultez la section Exemples suivante.
 

Syntaxe

PROTOCOL_CM_ADD_PARTY ProtocolCmAddParty;

NDIS_STATUS ProtocolCmAddParty(
  [in]      NDIS_HANDLE CallMgrVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters,
  [in]      NDIS_HANDLE NdisPartyHandle,
  [out]     PNDIS_HANDLE CallMgrPartyContext
)
{...}

Paramètres

[in] CallMgrVcContext

Spécifie le handle d’une zone de contexte allouée au gestionnaire d’appels dans laquelle le gestionnaire d’appels conserve son état par vc. Le gestionnaire d’appels a fourni ce handle à NDIS à partir de sa fonction ProtocolCoCreateVc .

[in, out] CallParameters

Pointeur vers une structure CO_CALL_PARAMETERS qui contient les paramètres, spécifiés par un client orienté connexion, pour la partie qui est ajoutée à un appel existant.

[in] NdisPartyHandle

Spécifie un handle, fourni par NDIS, qui identifie de manière unique une partie multipoint qui doit être ajoutée à une connexion virtuelle existante. Ce handle est opaque pour le gestionnaire d’appels et réservé à l’utilisation de la bibliothèque NDIS.

[out] CallMgrPartyContext

Spécifie, au retour, un handle vers une zone de contexte fournie par le gestionnaire d’appels dans laquelle le gestionnaire d’appels maintient l’état de cette partie pour l’appel multipoint.

Valeur retournée

ProtocolCmAddParty retourne le status de ses opérations comme suit :

Code de retour Description
NDIS_STATUS_SUCCESS
Indique que le gestionnaire d’appels a correctement alloué les ressources nécessaires pour maintenir l’état de la partie et a correctement ajouté le tiers à l’appel.
NDIS_STATUS_PENDING
Indique que le gestionnaire d’appels terminera la demande d’ajout d’une partie de façon asynchrone. Lorsque le gestionnaire d’appels a terminé toutes les opérations d’ajout du tiers, il doit appeler NdisCmAddPartyComplete pour signaler à NDIS que cette opération a été effectuée.
NDIS_STATUS_RESOURCES
Indique que le gestionnaire d’appels n’a pas pu allouer et/ou initialiser ses ressources pour ajouter un tiers à la connexion.
NDIS_STATUS_NOT_SUPPORTED
Indique que le gestionnaire d’appels n’a pas pu ajouter la partie à l’appel multipoint, car l’appelant a demandé des fonctionnalités non valides ou non disponibles dans les paramètres d’appel dans CallParameters ou que le type de média pris en charge par ce gestionnaire d’appels ne prend pas en charge les appels multipoints.

Remarques

ProtocolCmAddParty effectue toutes les allocations nécessaires de ressources et de structures dynamiques dont le gestionnaire d’appels a besoin pour conserver les informations d’état sur la partie, spécifiées par NdisPartyHandle, à ajouter à un appel multipoint. Ces ressources peuvent inclure, sans s’y limiter, des mémoires tampons, des structures de données, des événements et d’autres ressources similaires. Les gestionnaires d’appels doivent également initialiser les structures par partie pertinentes dans cette fonction.

Dans la zone d’état par partie que le gestionnaire d’appels alloue, le gestionnaire d’appels doit stocker le handle spécifié par NdisPartyHandle pour référence dans les appels futurs. Une fois que le gestionnaire d’appels a alloué et terminé l’initialisation de sa zone d’état par partie, l’adresse de la mémoire tampon d’état doit être définie comme handle CallMgrPartyContext avant de retourner le contrôle à NDIS. Pour ce faire, déréférencez le handle et stockez un pointeur vers la mémoire tampon d’état comme valeur du handle. Par exemple :

*CallMgrPartyContext = SomeBuffer;

Les gestionnaires d’appels effectuent toute communication nécessaire avec leur matériel réseau ou d’autres acteurs spécifiques aux médias, si nécessaire, pour ajouter la partie spécifiée par les paramètres d’appel dans CallParameters à un appel multipoint existant.

Exemples

Pour définir une fonction ProtocolCmAddParty , 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 fonction permet à l’analyse du code pour les pilotes, au vérificateur de pilotes statiques (SDV) et à d’autres outils de vérification de trouver des erreurs. Il s’agit d’une exigence pour l’écriture de pilotes pour le système d’exploitation Windows.

Par exemple, pour définir une fonction ProtocolCmAddParty nommée « MyCmAddParty », utilisez le type PROTOCOL_CM_ADD_PARTY comme indiqué dans cet exemple de code :

MINIPORT_ADD_DEVICE MyCmAddParty;

Ensuite, implémentez votre fonction comme suit :

_Use_decl_annotations_
NDIS_STATUS
 MyCmAddParty(
    NDIS_HANDLE  CallMgrVcContext,
    PCO_CALL_PARAMETERS  CallParameters,
    NDIS_HANDLE  NdisPartyHandle,
    PNDIS_HANDLE  CallMgrPartyContext
    )
  {...}

Le type de fonction PROTOCOL_CM_ADD_PARTY est défini dans le fichier d’en-tête Ndis.h. Pour identifier plus précisément les erreurs lors de l’exécution des 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_CM_ADD_PARTY 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 Annotating Function Behavior.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir ProtocolCmAddParty (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir ProtocolCmAddParty (NDIS 5.1)) dans Windows XP.
Plateforme cible Windows
En-tête ndis.h (inclure Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

NdisClAddParty

ProtocolClAddPartyComplete