Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 |