PROTOCOL_CM_ADD_PARTY fonction de rappel (ndis.h)
La fonction ProtocolCmAddParty est une fonction requise. 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 la nouvelle partie et provoque l’ajout de la partie à l’appel.
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 façon unique une partie multipoint à ajouter à 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, lors du retour, un handle vers une zone de contexte fournie par le gestionnaire d’appels dans laquelle le gestionnaire d’appels conserve l’état de cette partie pour l’appel multipoint.
Valeur de retour
ProtocolCmAddParty retourne l’état de ses opérations comme suit :
Retourner le code | Description |
---|---|
|
Indique que le gestionnaire d’appels a correctement alloué les ressources nécessaires pour maintenir l’état de la partie et ajouter correctement la partie à l’appel. |
|
Indique que le gestionnaire d’appels termine la demande d’ajout asynchrone d’une partie. Lorsque le gestionnaire d’appels a terminé toutes les opérations pour ajouter la partie, il doit appeler NdisCmAddPartyComplete pour signaler à NDIS que cette opération a été terminée. |
|
Indique que le gestionnaire d’appels n’a pas pu allouer et/ou initialiser ses ressources pour ajouter une partie à la connexion. |
|
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 indisponibles dans les paramètres d’appel à CallParameters ou si le type de média pris en charge par ce gestionnaire d’appels ne prend pas en charge les appels multipoint. |
Remarques
ProtocolCmAddParty effectue toutes les allocations nécessaires de ressources et de structures dynamiques requises par le gestionnaire d’appels pour conserver les informations d’état sur la partie, spécifiées par NdisPartyHandle, à ajouter à un appel multipoint. Ces ressources peuvent inclure, mais elles ne sont pas limitées aux mémoires tampons, aux structures de données, aux événements et à d’autres ressources similaires. Les gestionnaires d’appels doivent également initialiser des structures par partie pertinentes dans cette fonction.
Dans la zone d’état par partie allouée par le gestionnaire d’appels, 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 CallMgrPartyContext handle 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 au support, le cas échéant, pour ajouter la partie spécifiée par les paramètres d’appel à CallParameters à un appel multipoint existant.
exemples de
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 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 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 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_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 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 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 |
d’en-tête | ndis.h (include Ndis.h) |
IRQL | <= DISPATCH_LEVEL |