Partager via


NotifyUnicastIpAddressChange, fonction

La fonction NotifyUnicastIpAddressChange enregistre le pilote pour être averti des modifications apportées à toutes les interfaces IP unidiffusion, adresses IPv4 unidiffusion ou adresses IPv6 monodiffusion sur un ordinateur local.

Syntaxe

NETIOAPI_API NotifyUnicastIpAddressChange(
  _In_    ADDRESS_FAMILY                     Family,
  _In_    PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback,
  _In_    PVOID                              CallerContext,
  _In_    BOOLEAN                            InitialNotification,
  _Inout_ HANDLE                             *NotificationHandle
);

Paramètres

  • Family [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 protocoles PF_ sont identiques (par exemple, AF_INET et PF_INET), afin de pouvoir 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, la fonction inscrit le pilote uniquement pour les notifications de modification d’adresse IPv4 unicast.

    • AF_INET6
      Famille d’adresses IPv6. Lorsque cette valeur est spécifiée, la fonction inscrit le pilote uniquement pour les notifications de modification d’adresse IPv6 unicast.

    • AF_UNSPEC
      La famille d’adresses n’est pas spécifiée. Lorsque cette valeur est spécifiée, la fonction inscrit le pilote pour les notifications de modification d’adresse IPv4 et IPv6 unicast.

  • de rappel [in]
    Pointeur vers la fonction à appeler lorsqu’une modification se produit. Cette fonction est appelée lorsqu’une notification d’adresse IP de monodiffusion est reçue.

  • CallerContext [in]
    Contexte utilisateur passé à la fonction de rappel spécifiée dans le paramètre rappel lorsqu’une notification d’interface 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. Cette notification initiale n’indique pas qu’une modification s’est produite sur une adresse IP de monodiffusion. 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

NotifyUnicastIpAddressChange retourne STATUS_SUCCESS si la fonction réussit.

Si la fonction échoue, NotifyUnicastIpAddressChange 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 famille de n’a pas été AF_INET, AF_INET6 ou AF_UNSPEC.

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

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 incluent les éléments suivants.

Paramètre Description

IN PVOID CallerContext

Paramètre CallerContext transmis à la fonction NotifyUnicastIpAddressChange lors de l’inscription du pilote pour les notifications de modification.

IN PMIB_UNICASTIPADDRESS_ROW Row OPTIONAL

Pointeur vers l’entrée MIB_UNICASTIPADDRESS_ROW pour l’adresse IP de monodiffusion 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 passé à NotifyUnicastIpAddressChange 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 désinscrire le pilote pour les notifications de modification, appelez la fonction CancelMibChangeNotify2, en passant le paramètre NotificationHandle qui NotifyUnicastIpAddressChange retourne.

Exigences

Plateforme cible

universel

Version

Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.

En-tête

Netioapi.h (include Netioapi.h)

Bibliothèque

Netio.lib

IRQL

< DISPATCH_LEVEL

Voir aussi

CancelMibChangeNotify2

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_NOTIFICATION_TYPE

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyStableUnicastIpAddressTable

SetUnicastIpAddressEntry