Udostępnij przez


NotifyTeredoPortChange, funkcja

Funkcja NotifyTeredoPortChange rejestruje sterownik, który ma zostać powiadomiony o zmianach w numerze portu UDP używanym przez klienta Teredo dla portu usługi Teredo na komputerze lokalnym.

Składnia

NETIOAPI_API NotifyTeredoPortChange(
  _In_    PTEREDO_PORT_CHANGE_CALLBACK Callback,
  _In_    PVOID                        CallerContext,
  _In_    BOOLEAN                      InitialNotification,
  _Inout_ HANDLE *                     NotificationHandle
);

Parametry

  • wywołania zwrotnego [in]
    Wskaźnik do funkcji w celu wywołania zmiany portu klienta Teredo. Ta funkcja jest wywoływana po odebraniu powiadomienia o zmianie portu Teredo.

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

  • InitialNotification [in]
    Wartość wskazująca, czy wywołanie zwrotne powinno być wywoływane natychmiast po zakończeniu rejestracji w celu powiadomienia o zmianie sterownika. To początkowe powiadomienie nie oznacza, że nastąpiła zmiana portu klienta Teredo. 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

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

Jeśli funkcja nie powiedzie się, NotifyTeredoPortChange 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 wywołania zwrotnego jest wskaźnikiem o wartości null.

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

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 NotifyTeredoPortChange podczas rejestrowania sterownika dla powiadomień o zmianie.

IN USHORT Port

Numer portu UDP używany obecnie przez klienta Teredo. Ten parametr jest zerowy, gdy wartość MIB_NOTIFICATION_TYPE przekazana 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 NotifyTeredoPortChange 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.

Sterownik może użyć funkcji GetTeredoPort w celu pobrania początkowego numeru portu UDP używanego przez klienta Teredo na potrzeby portu usługi Teredo.

Port Teredo jest dynamiczny i może zmieniać się w dowolnym momencie ponownego uruchomienia klienta Teredo na komputerze lokalnym. Sterownik można zarejestrować, aby otrzymywać powiadomienia, gdy port usługi Teredo ulegnie zmianie, wywołując funkcję NotifyTeredoPortChange.

Klient Teredo używa również statycznego portu UDP 3544 do nasłuchiwania ruchu multiemisji wysyłanego na adres IPv4 multiemisji 224.0.0.253 zgodnie z definicją w dokumencie RFC 4380. Aby uzyskać więcej informacji, zobacz Teredo: tunelowanie IPv6 za pośrednictwem translacji adresów sieciowych (NATs) udPthrough.

Funkcja NotifyTeredoPortChange jest używana głównie przez sterowniki zapory do konfigurowania odpowiednich wyjątków w celu włączenia ruchu przychodzącego i wychodzącego Teredo.

Aby wyrejestrować sterownik dla powiadomień o zmianie, wywołaj funkcję CancelMibChangeNotify2, przekazując parametr NotificationHandle zwracany przez funkcję NotifyTeredoPortChange.

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

GetTeredoPort

NotifyStableUnicastIpAddressTable