fonction de rappel PMGM_PRUNE_ALERT_CALLBACK (mgm.h)
Le rappel PMGM_PRUNE_ALERT_CALLBACK est un appel à un protocole de routage pour informer le protocole que les récepteurs ne sont plus présents sur les interfaces appartenant à d’autres protocoles de routage.
Syntaxe
PMGM_PRUNE_ALERT_CALLBACK PmgmPruneAlertCallback;
DWORD PmgmPruneAlertCallback(
[in] DWORD dwSourceAddr,
[in] DWORD dwSourceMask,
[in] DWORD dwGroupAddr,
[in] DWORD dwGroupMask,
[in] DWORD dwIfIndex,
[in] DWORD dwIfNextHopAddr,
[in] BOOL bMemberDelete,
[in, out] PDWORD pdwTimeout
)
{...}
Paramètres
[in] dwSourceAddr
Spécifie l’adresse source à partir de laquelle arrêter la réception des données de multidiffusion. Zéro indique l’arrêt de la réception de données de toutes les sources (récepteur générique pour un groupe) ; sinon, la valeur de dwSourceAddr est l’adresse IP du réseau source ou source.
Pour spécifier une plage d’adresses sources, le gestionnaire de groupe de multidiffusion spécifie le réseau source à l’aide de dwSourceAddr et spécifie un masque de sous-réseau à l’aide de dwSourceMask.
[in] dwSourceMask
Spécifie le masque de sous-réseau qui correspond à dwSourceAddr. Les paramètres dwSourceAddr et dwSourceMask sont utilisés ensemble pour définir une plage de sources à partir desquelles arrêter la réception des données de multidiffusion.
Le gestionnaire de groupe de multidiffusion spécifie zéro pour ce paramètre s’il a également spécifié zéro pour dwSourceAddr (récepteur générique).
[in] dwGroupAddr
Spécifie le groupe de multidiffusion pour lequel arrêter la réception de données. Zéro indique l’arrêt de la réception de données pour tous les groupes (récepteur générique) ; sinon, la valeur de dwGroupAddr est l’adresse IP du groupe.
Pour spécifier une plage d’adresses de groupe, le gestionnaire de groupe de multidiffusion spécifie l’adresse de groupe à l’aide de dwGroupAddr et spécifie un masque de sous-réseau à l’aide de dwGroupMask.
[in] dwGroupMask
Spécifie le masque de sous-réseau qui correspond à dwGroupAddr. Les paramètres dwGroupAddr et dwGroupMask sont utilisés ensemble pour définir une plage de groupes de multidiffusion.
Le gestionnaire de groupe de multidiffusion spécifie zéro pour ce paramètre s’il a également spécifié zéro pour dwGroupAddr (récepteur générique).
[in] dwIfIndex
Spécifie l’interface sur laquelle arrêter la réception de données de multidiffusion.
[in] dwIfNextHopAddr
Spécifie l’adresse du tronçon suivant qui correspond à l’index spécifié par dwIfIndex. Les paramètres dwIfIndex et dwIfNextHopIPAddr identifient de manière unique un tronçon suivant sur les interfaces point à multipoint. Une interface de point à multipoint est une connexion par laquelle une interface se connecte à plusieurs réseaux. Parmi les exemples d’interfaces point à multipoint, citons les interfaces NBMA (Non Broadcast Multiple Access) et l’interface interne sur laquelle tous les clients d’accès à distance se connectent.
Pour les interfaces de diffusion (telles que les interfaces Ethernet) ou les interfaces point à point, qui sont identifiées uniquement par la valeur de dwIfIndex, spécifiez zéro.
[in] bMemberDelete
Spécifie si le rappel a été appelé parce que mgmAddGroupMembershipEntry a été appelé par un client (le gestionnaire de groupe de multidiffusion définit ce paramètre sur TRUE) ou parce qu’un MFE a été créé ou mis à jour (le gestionnaire de groupe de multidiffusion définit ce paramètre sur FALSE).
[in, out] pdwTimeout
En entrée, pdwTimeout pointe vers un emplacement mémoire de taille DWORD.
Si bMemberDelete a la valeur FALSE, ce paramètre peut être utilisé pour spécifier la durée pendant laquelle le MFE correspondant doit rester dans le cache de transfert multidiffusion. Si le client ne spécifie pas de valeur, la valeur par défaut est 900 secondes.
Lors de la sortie, pdwTimeout reçoit la valeur de délai d’attente, en secondes, pour ce MFE.
Valeur retournée
RRAS ne s’attend pas à ce que l’application retourne une valeur spécifique ; toute valeur retournée est ignorée par RRAS.
Remarques
Le gestionnaire de groupe de multidiffusion définit le paramètre bMemberDelete sur TRUE et appelle ce rappel si un client appelle la fonction MgmDeleteGroupMembershipEntry pour une entrée (s, g), (, g) ou (, *) (autrement dit, l’appartenance au groupe change).
Le gestionnaire de groupe de multidiffusion définit le paramètre bMemberDelete sur FALSE si la liste d’interface sortante d’un MFE change. Ce changement se produit généralement pour une modification de l’appartenance au groupe correspondant à l’environnement MFE.
Un protocole de routage multidiffusion peut utiliser le paramètre bMemberDelete pour faire la distinction entre les modifications apportées à l’appartenance au groupe et les modifications apportées à l’environnement MFE.
L’action effectuée par le protocole de routage lors de la réception de ce rappel est spécifique au protocole. Le protocole peut ignorer le rappel si le paramètre bMemberDelete a la valeur FALSE, si la spécification du protocole indique qu’il s’agit du comportement correct.
Lorsque MgmDeleteGroupMembershipEntry est appelé, le gestionnaire de groupe de multidiffusion utilise ce rappel pour avertir d’autres clients du gestionnaire de groupe de multidiffusion qu’il n’existe plus de récepteurs pour la source et le groupe spécifiés.
Le gestionnaire de groupe de multidiffusion utilise les règles suivantes pour déterminer quand appeler ce rappel pour les jointures génériques (*, g) :
- Si l’interface finale est supprimée pour l’avant-dernier client (c’est-à-dire lorsque les interfaces d’un seul client restent), le gestionnaire de groupe de multidiffusion appelle le PMGM_PRUNE_ALERT_CALLBACK rappel à ce client restant.
- Si l’interface finale est supprimée pour le dernier client (c’est-à-dire lorsqu’aucune autre interface ne reste), ce rappel est appelé pour tous les autres clients inscrits auprès du gestionnaire de groupe de multidiffusion.
- Lorsqu’un pruneau spécifique à la source pour un groupe (s, g) est reçu, le gestionnaire de groupe de multidiffusion appelle le rappel PMGM_PRUNE_ALERT_CALLBACK uniquement pour le client propriétaire de l’interface entrante vers le « s » source.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Aucun pris en charge |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | mgm.h |