Partager via


Fonction NotifyIpInterfaceChange

La fonction NotifyIpInterfaceChange inscrit le pilote à notifier pour les modifications apportées à toutes les interfaces IP, interfaces IPv4 ou interfaces IPv6 sur un ordinateur local.

Syntaxe

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

Paramètres

  • Famille [dans]
    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 du AF_ adressent les constantes famille et PF_ de famille de protocole 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 à notifier uniquement pour les notifications de modification IPv4.

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

    • AF_UNSPEC
      La famille d’adresses n’est pas spécifiée. Lorsque cette valeur est spécifiée, cette fonction inscrit le pilote à notifier pour les modifications IPv4 et IPv6.

  • Rappel [in]
    Pointeur vers la fonction à appeler en cas de modification. 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 s’est produite à une interface IP. L’objectif de ce paramètre est de fournir la confirmation que le rappel est inscrit.

  • NotificationHandle [in, out]
    Pointeur utilisé pour retourner un handle qui peut être utilisé ultérieurement pour annuler l’inscription de la notification de modification. En cas de réussite, un handle de notification est retourné dans ce paramètre. Si une erreur se produit, null est retourné.

Valeur retournée

NotifyIpInterfaceChange retourne STATUS_SUCCESS si la fonction réussit.

Si la fonction échoue, NotifyIpInterfaceChange 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 pour 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 passé à la fonction NotifyIpInterfaceChange lors de l’inscription du pilote pour les notifications de modification.

LIGNE IN PMIB_IPINTERFACE_ROW FACULTATIF

Pointeur vers l’entrée MIB_IPINTERFACE_ROW pour l’interface 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 peut se produire uniquement si le paramètre InitialNotification qui est passé à NotifyIpInterfaceChange 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 retourné par NotifyIpInterfaceChange .

Spécifications

Plateforme cible

Universal

Version

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

En-tête

Netioapi.h (inclure Netioapi.h)

Bibliothèque

Netio.lib

IRQL

< DISPATCH_LEVEL

Voir aussi

CancelMibChangeNotify2

GetIfEntry2

GetIfStackTable

GetIfTable2

GetInvertedIfStackTable

GetIpInterfaceEntry

InitializeIpInterfaceEntry

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_NOTIFICATION_TYPE

SetIpInterfaceEntry