NotifyTeredoPortChange, fonction
La fonction NotifyTeredoPortChange enregistre le pilote pour être informé des modifications apportées au numéro de port UDP utilisé par le client Teredo pour le port du service Teredo sur un ordinateur local.
Syntaxe
NETIOAPI_API NotifyTeredoPortChange(
_In_ PTEREDO_PORT_CHANGE_CALLBACK Callback,
_In_ PVOID CallerContext,
_In_ BOOLEAN InitialNotification,
_Inout_ HANDLE * NotificationHandle
);
Paramètres
de rappel [in]
Pointeur vers la fonction à appeler lorsqu’un changement de port client Teredo se produit. Cette fonction est appelée lorsqu’une notification de modification de port Teredo est reçue.CallerContext [in]
Contexte utilisateur passé à la fonction de rappel spécifiée dans le paramètre de rappel lorsqu’une notification de modification de port Teredo est reçue.InitialNotification [in]
Valeur qui indique si le rappel doit être appelé immédiatement après l’inscription de la notification de modification du pilote. Cette notification initiale n’indique pas qu’une modification s’est produite sur le port du client Teredo. Ce paramètre indique que le rappel est inscrit.NotificationHandle [in, out]
Pointeur utilisé pour retourner un handle que votre pilote peut utiliser ultérieurement pour désinscrire la notification de modification du pilote. En cas de réussite, un handle de notification est retourné dans ce paramètre. Si une erreur se produit, NULL est retournée.
Valeur de retour
NotifyTeredoPortChange retourne STATUS_SUCCESS si la fonction réussit.
Si la fonction échoue, NotifyTeredoPortChange retourne l’un des codes d’erreur suivants :
Retourner le code | Description |
---|---|
ERROR_INVALID_HANDLE | Une erreur interne s’est produite quand un handle non valide a été rencontré. |
STATUS_INVALID_PARAMETER | Un paramètre non valide a été passé à la fonction. Cette erreur est retournée si le paramètre de rappel est un pointeur NULL. |
STATUS_NOT_ENOUGH_MEMORY | Il y avait une mémoire insuffisante. |
autres | Utilisez la fonction FormatMessage pour obtenir la chaîne de message pour l’erreur retournée. |
Remarques
L’appel de la fonction de rappel spécifiée dans le paramètre callback est sérialisé. La fonction de rappel doit être définie comme une fonction de type VOID. Les paramètres passés à la fonction de rappel incluent les éléments suivants.
Paramètre | Description |
---|---|
IN PVOID CallerContext |
Paramètre CallerContext transmis à la fonction NotifyTeredoPortChange lors de l’inscription du pilote pour les notifications de modification. |
IN USHORT Port |
Numéro de port UDP utilisé actuellement par le client Teredo. Ce paramètre est égal à zéro lorsque la valeur MIB_NOTIFICATION_TYPE passée dans le paramètre NotificationType à la fonction de rappel est définie sur MibInitialNotification. Cette situation ne peut se produire que si le paramètre InitialNotification passé à NotifyTeredoPortChange a été défini sur TRUE lors de l’inscription du pilote pour les notifications de modification. |
IN MIB_NOTIFICATION_TYPE NotificationType |
Type de notification. Ce membre peut être l’une des valeurs du type d’énumération MIB_NOTIFICATION_TYPE. |
Votre pilote peut utiliser la fonction GetTeredoPort pour récupérer le numéro de port UDP initial utilisé par le client Teredo pour le port du service Teredo.
Le port Teredo est dynamique et peut changer chaque fois que le client Teredo est redémarré sur l’ordinateur local. Un pilote peut s’inscrire pour être averti lorsque le port du service Teredo change en appelant la fonction NotifyTeredoPortChange.
Le client Teredo utilise également le port UDP statique 3544 pour écouter le trafic de multidiffusion envoyé sur l’adresse IPv4 multidiffusion 224.0.0.253 tel que défini dans RFC 4380. Pour plus d’informations, consultez Teredo : Tunneling IPv6 over UDPthrough Network Address Translation (NATs).
La fonction NotifyTeredoPortChange est principalement utilisée par les pilotes de pare-feu pour configurer les exceptions appropriées pour activer le trafic Teredo entrant et sortant.
Pour désinscrire le pilote pour les notifications de modification, appelez la fonction CancelMibChangeNotify2, en passant le paramètre NotificationHandle retourné par la fonction NotifyTeredoPortChange.