Udostępnij za pośrednictwem


NotifyRouteChange2, funkcja

Funkcja NotifyRouteChange2 rejestruje sterownik, który ma być powiadamiany o zmianach wpisów trasy IP na komputerze lokalnym.

Składnia

NETIOAPI_API NotifyRouteChange2(
  _In_    ADDRESS_FAMILY             Family,
  _In_    PIPFORWARD_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 tylko w przypadku powiadomień o zmianie trasy IPv4.

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

    • AF_UNSPEC
      Rodzina adresów nie jest określona. Po określeniu tej wartości ta funkcja rejestruje sterownik zarówno dla powiadomień o zmianie trasy 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 oznacza, że nastąpiła zmiana trasy IP. Celem tego parametru jest potwierdzenie zarejestrowania wywołania zwrotnego.

  • NotificationHandle [in, out]
    Wskaźnik do struktury MIB_IPINTERFACE_ROW do zainicjowania. Po pomyślnym powrocie elementy członkowskie w tej strukturze są inicjowane z domyślnymi informacjami o interfejsie na komputerze lokalnym.

Wartość zwracana

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

Jeśli funkcja zakończy się niepowodzeniem, NotifyRouteChange2 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 NotifyRouteChange 2 podczas rejestrowania sterownika w celu otrzymywania powiadomień o zmianie.

IN PMIB_IPFORWARD_ROW2 Row OPTIONAL

Wskaźnik do wpisu MIB_IPFORWARD_ROW2 dla wpisu trasy IP, który został zmieniony. Ten parametr jest wskaźnikiem null, gdy wartość MIB_NOTIFICATION_TYPE przekazywana w parametrze NotificationType funkcji wywołania zwrotnego jest ustawiona na MibInitialNotification. Taka sytuacja może wystąpić tylko wtedy, gdy parametr InitialNotification przekazany do NotifyRouteChange2 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 NotifyRouteChange2.

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

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_NOTIFICATION_TYPE

SetIpForwardEntry2