Fonction NotifyRouteChange2
La fonction NotifyRouteChange2 inscrit le pilote pour qu’il soit averti des modifications apportées aux entrées d’itinéraire IP sur un ordinateur local.
Syntaxe
NETIOAPI_API NotifyRouteChange2(
_In_ ADDRESS_FAMILY Family,
_In_ PIPFORWARD_CHANGE_CALLBACK Callback,
_In_ PVOID CallerContext,
_In_ BOOLEAN InitialNotification,
_Inout_ HANDLE *NotificationHandle
);
Paramètres
Famille [in]
Famille d’adresses sur laquelle inscrire le pilote pour les notifications de modification.Les valeurs possibles pour la famille d’adresses sont répertoriées dans le fichier d’en-tête Winsock2.h. Notez que les valeurs de la famille d’adresses AF_ et des constantes de famille de protocole PF_ sont identiques (par exemple, AF_INET et PF_INET). Vous pouvez donc utiliser l’une ou l’autre constante.
Sur Windows Vista et les versions ultérieures des systèmes d’exploitation Windows, les valeurs possibles pour le paramètre Family sont définies dans le fichier d’en-tête Ws2def.h. Notez que le fichier d’en-tête Ws2def.h est automatiquement inclus dans Netioapi.h et que vous ne devez jamais utiliser Ws2def.h directement.
Les valeurs suivantes sont actuellement prises en charge pour la famille d’adresses :
AF_INET
Famille d’adresses IPv4. Lorsque cette valeur est spécifiée, cette fonction inscrit le pilote uniquement pour les notifications de modification de route IPv4.AF_INET6
Famille d’adresses IPv6. Lorsque cette valeur est spécifiée, cette fonction inscrit le pilote uniquement pour les notifications de modification de route IPv6.AF_UNSPEC
La famille d’adresses n’est pas spécifiée. Lorsque cette valeur est spécifiée, cette fonction inscrit le pilote pour les notifications de modification de route IPv4 et IPv6.
Rappel [in]
Pointeur vers la fonction à appeler lorsqu’une modification se produit. Cette fonction est appelée lorsqu’une notification d’interface est reçue.CallerContext [in]
Contexte utilisateur passé à la fonction de rappel spécifiée dans le paramètre Callback lors de la réception d’une notification d’interface.InitialNotification [in]
Valeur qui indique si le rappel doit être appelé immédiatement après la fin de l’inscription pour la notification de modification. Cette notification initiale n’indique pas qu’une modification a été apportée à l’itinéraire IP. L’objectif de ce paramètre est de fournir la confirmation que le rappel est inscrit.NotificationHandle [in, out]
Pointeur vers une structure MIB_IPINTERFACE_ROW à initialiser. En cas de retour réussi, les membres de cette structure sont initialisés avec les informations par défaut d’une interface sur l’ordinateur local.
Valeur retournée
NotifyRouteChange2 retourne STATUS_SUCCESS si la fonction réussit.
Si la fonction échoue, NotifyRouteChange2 retourne l’un des codes d’erreur suivants.
Code de retour | Description |
---|---|
ERROR_INVALID_HANDLE | Une erreur interne s’est produite lorsqu’un handle non valide a été rencontré. |
STATUS_INVALID_PARAMETER | Un paramètre non valide a été transmis à la fonction. Cette erreur est retournée si le paramètre Family n’était pas AF_INET, AF_INET6 ou AF_UNSPEC. |
STATUS_NOT_ENOUGH_MEMORY | La mémoire était insuffisante. |
Autres | Utilisez la fonction FormatMessage pour obtenir la chaîne de message de l’erreur retournée. |
Notes
Votre pilote doit définir le paramètre Family sur AF_INET, AF_INET6 ou AF_UNSPEC.
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 sont les suivants.
Paramètre | Description |
---|---|
IN PVOID CallerContext |
Paramètre CallerContext qui est passé à la fonction NotifyRouteChange2 lorsqu’elle inscrit le pilote pour les notifications de modification. |
IN PMIB_IPFORWARD_ROW2 Row OPTIONAL |
Pointeur vers l’entrée MIB_IPFORWARD_ROW2 pour l’entrée d’itinéraire IP qui a été modifiée. Ce paramètre est un pointeur NULL 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 qui est passé à NotifyRouteChange2 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 . |
Pour annuler l’inscription du pilote pour les notifications de modification, appelez la fonction CancelMibChangeNotify2 , en passant le paramètre NotificationHandle retourné par NotifyRouteChange2 .
Spécifications
Plateforme cible |
Universal |
Version |
Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows. |
En-tête |
Netioapi.h (inclure Netioapi.h) |
Bibliothèque |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |