Udostępnij przez


NotifyUnicastIpAddressChange, funkcja

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

Składnia

NETIOAPI_API NotifyUnicastIpAddressChange(
  _In_    ADDRESS_FAMILY                     Family,
  _In_    PUNICAST_IPADDRESS_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 funkcja rejestruje sterownik tylko w przypadku powiadomień o zmianie adresu IPv4 emisji pojedynczej.

    • AF_INET6
      Rodzina adresów IPv6. Po określeniu tej wartości funkcja rejestruje sterownik tylko w przypadku powiadomień o zmianie adresu IPv6 emisji pojedynczej.

    • AF_UNSPEC
      Rodzina adresów nie jest określona. Po określeniu tej wartości funkcja rejestruje sterownik zarówno dla powiadomień o zmianie adresu IPv4 emisji pojedynczej, 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 o adresie IP emisji pojedynczej.

  • 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 oznacza, że nastąpiła zmiana adresu IP emisji pojedynczej. Ten parametr zapewnia potwierdzenie zarejestrowania wywołania zwrotnego.

  • NotificationHandle [in, out]
    Wskaźnik używany do zwracania uchwytu, którego sterownik może później użyć do wyrejestrowania powiadomienia o zmianie sterownika. 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

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

Jeśli funkcja nie powiedzie się, NotifyUnicastIpAddressChange 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, który jest przekazywany do funkcji NotifyUnicastIpAddressChange podczas rejestrowania sterownika dla powiadomień o zmianie.

IN PMIB_UNICASTIPADDRESS_ROW Row OPTIONAL

Wskaźnik do wpisu MIB_UNICASTIPADDRESS_ROW dla zmienionego adresu IP emisji pojedynczej. 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 NotifyUnicastIpAddressChange 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 parametr NotificationHandle, który NotifyUnicastIpAddressChange 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

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_NOTIFICATION_TYPE

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyStableUnicastIpAddressTable

SetUnicastIpAddressEntry