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 |