Udostępnij przez


NotifyIpInterfaceChange, funkcja

Funkcja NotifyIpInterfaceChange rejestruje sterownik, który ma zostać powiadomiony o zmianach we wszystkich interfejsach IP, interfejsach IPv4 lub interfejsach IPv6 na komputerze lokalnym.

Składnia

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

Parametry

  • rodziny [in]
    Rodzina adresów do zarejestrowania sterownika w celu otrzymywania powiadomień o zmianie.

    Możliwe wartości rodziny adresów są wymienione w pliku nagłówka Winsock2.h. Należy pamiętać, że wartości rodziny adresów AF_ i rodziny protokołów PF_ są identyczne (na przykład AF_INET i PF_INET), aby można było użyć dowolnej stałej.

    W systemie Windows Vista i nowszych wersjach systemów operacyjnych Windows możliwe wartości parametru Family są zdefiniowane w pliku nagłówka Ws2def.h. Należy pamiętać, że plik nagłówka Ws2def.h jest automatycznie dołączany do pliku Netioapi.h i nigdy nie należy bezpośrednio używać pliku Ws2def.h.

    Dla rodziny adresów są obecnie obsługiwane następujące wartości:

    • AF_INET
      Rodzina adresów IPv4. Po określeniu tej wartości ta funkcja rejestruje sterownik, aby otrzymywać powiadomienia tylko dla powiadomień o zmianie protokołu IPv4.

    • AF_INET6
      Rodzina adresów IPv6. Po określeniu tej wartości ta funkcja rejestruje sterownik tylko dla powiadomień o zmianie protokołu IPv6.

    • AF_UNSPEC
      Rodzina adresów nie jest określona. Po określeniu tej wartości ta funkcja rejestruje sterownik, który ma być powiadamiany zarówno dla zmian IPv4, jak i IPv6.

  • wywołania zwrotnego [in]
    Wskaźnik do funkcji w celu wywołania, gdy nastąpi zmiana. Ta funkcja jest wywoływana po odebraniu powiadomienia interfejsu.

  • CallerContext [in]
    Kontekst użytkownika przekazywany do funkcji wywołania zwrotnego określonego w parametrze wywołania zwrotnego po odebraniu powiadomienia interfejsu.

  • InitialNotification [in]
    Wartość wskazująca, czy wywołanie zwrotne powinno być wywoływane natychmiast po zakończeniu rejestracji w celu powiadomienia o zmianie. To początkowe powiadomienie nie wskazuje, że nastąpiła zmiana interfejsu IP. Celem tego parametru jest potwierdzenie zarejestrowania wywołania zwrotnego.

  • NotificationHandle [in, out]
    Wskaźnik służący do zwracania dojścia, którego można później użyć do wyrejestrowania powiadomienia o zmianie. Po pomyślnym zakończeniu w tym parametrze zostanie zwrócony uchwyt powiadomień. Jeśli wystąpi błąd, zostanie zwrócona o wartości NULL.

Wartość zwracana

NotifyIpInterfaceChange zwraca STATUS_SUCCESS, jeśli funkcja powiedzie się.

Jeśli funkcja zakończy się niepowodzeniem, NotifyIpInterfaceChange zwraca jeden z następujących kodów błędów:

Kod powrotny Opis
ERROR_INVALID_HANDLE

Wystąpił błąd wewnętrzny, w którym napotkano nieprawidłowe dojście.

STATUS_INVALID_PARAMETER

Do funkcji przekazano nieprawidłowy parametr. Ten błąd jest zwracany, jeśli parametr rodziny nie był AF_INET, AF_INET6 lub AF_UNSPEC.

STATUS_NOT_ENOUGH_MEMORY

Za mało pamięci.

inne

Użyj funkcji FormatMessage, aby uzyskać ciąg komunikatu dla zwróconego błędu.

Uwagi

Sterownik musi ustawić parametr Family na wartość AF_INET, AF_INET6 lub AF_UNSPEC.

Wywołanie funkcji wywołania zwrotnego określonego w parametrze Callback jest serializowane. Funkcja wywołania zwrotnego powinna być zdefiniowana jako funkcja typu VOID. Parametry przekazywane do funkcji wywołania zwrotnego obejmują następujące elementy.

Parametr Opis

IN PVOID CallerContext

Parametr CallerContext przekazywany do funkcji NotifyIpInterfaceChange podczas rejestrowania sterownika dla powiadomień o zmianie.

IN PMIB_IPINTERFACE_ROW Row OPTIONAL

Wskaźnik do wpisu MIB_IPINTERFACE_ROW interfejsu, który został zmieniony. Ten parametr jest wskaźnikiem null null, gdy wartość MIB_NOTIFICATION_TYPE przekazywana w parametrze NotificationType funkcji wywołania zwrotnego jest ustawiona na wartość MibInitialNotification. Taka sytuacja może wystąpić tylko wtedy, gdy parametr InitialNotification przekazany do NotifyIpInterfaceChange został ustawiony na true podczas rejestrowania sterownika w celu otrzymywania powiadomień o zmianie.

IN MIB_NOTIFICATION_TYPE NotificationType

Typ powiadomienia. Ten element członkowski może być jedną z wartości typu wyliczenia MIB_NOTIFICATION_TYPE.

Aby wyrejestrować sterownik dla powiadomień o zmianie, wywołaj funkcję CancelMibChangeNotify2, przekazując NotificationHandle parametr, który NotifyIpInterfaceChange zwraca.

Wymagania

Platforma docelowa

universal

Wersja

Dostępne w systemie Windows Vista i nowszych wersjach systemów operacyjnych Windows.

Nagłówek

Netioapi.h (include Netioapi.h)

Biblioteka

Netio.lib

IRQL

< DISPATCH_LEVEL

Zobacz też

CancelMibChangeNotify2

GetIfEntry2

getIfStackTable

GetIfTable2

getInvertedIfStackTable

GetIpInterfaceEntry

InitializeIpInterfaceEntry

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_NOTIFICATION_TYPE

SetIpInterfaceEntry