Freigeben über


NotifyTeredoPortChange-Funktion

Die NotifyTeredoPortChange-Funktion registriert den Treiber, um bei Änderungen an der UDP-Portnummer benachrichtigt zu werden, die der Teredo-Client für den Teredo-Dienstport auf einem lokalen Computer verwendet.

Syntax

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

Parameter

  • Rückruf- [in]
    Ein Zeiger auf die Funktion, die aufgerufen werden soll, wenn ein Teredo-Clientport geändert wird. Diese Funktion wird aufgerufen, wenn eine Teredo-Portänderungsbenachrichtigung empfangen wird.

  • CallerContext- [in]
    Ein Benutzerkontext, der an die Rückruffunktion übergeben wird, die im Callback-Parameter angegeben ist, wenn eine Teredo-Portänderungsbenachrichtigung empfangen wird.

  • InitialNotification [in]
    Ein Wert, der angibt, ob der Rückruf unmittelbar nach abschluss der Registrierung für die Treiberänderungsbenachrichtigung aufgerufen werden soll. Diese anfängliche Benachrichtigung gibt nicht an, dass eine Änderung am Teredo-Clientport aufgetreten ist. Dieser Parameter stellt eine Bestätigung bereit, dass der Rückruf registriert ist.

  • NotificationHandle- [in, out]
    Ein Zeiger, der verwendet wird, um ein Handle zurückzugeben, mit dem Der Treiber später die Registrierung der Treiberänderungsbenachrichtigung aufheben kann. Bei Erfolg wird in diesem Parameter ein Benachrichtigungshandle zurückgegeben. Wenn ein Fehler auftritt, wird NULL- zurückgegeben.

Rückgabewert

NotifyTeredoPortChange gibt STATUS_SUCCESS zurück, wenn die Funktion erfolgreich ist.

Wenn die Funktion fehlschlägt, gibt NotifyTeredoPortChange eine der folgenden Fehlercodes zurück:

Rückgabecode Beschreibung
ERROR_INVALID_HANDLE

Interner Fehler, bei dem ein ungültiger Handle aufgetreten ist.

STATUS_INVALID_PARAMETER

An die Funktion wurde ein ungültiger Parameter übergeben. Dieser Fehler wird zurückgegeben, wenn der Callback Parameter ein NULL- Zeiger ist.

STATUS_NOT_ENOUGH_MEMORY

Nicht genügend Arbeitsspeicher vorhanden.

Andere

Verwenden Sie die FormatMessage--Funktion, um die Nachrichtenzeichenfolge für den zurückgegebenen Fehler abzurufen.

Bemerkungen

Der Aufruf der Rückruffunktion, die im Callback Parameter angegeben ist, wird serialisiert. Die Rückruffunktion sollte als Funktion vom Typ VOIDdefiniert werden. Die Parameter, die an die Rückruffunktion übergeben werden, umfassen Folgendes.

Parameter Beschreibung

IN PVOID CallerContext

Der CallerContext Parameter, der an die funktion NotifyTeredoPortChange übergeben wird, wenn der Treiber für Änderungsbenachrichtigungen registriert wird.

IN USHORT Port

Die UDP-Portnummer, die der Teredo-Client derzeit verwendet. Dieser Parameter ist null, wenn der MIB_NOTIFICATION_TYPE Wert, der im NotificationType Parameter an die Rückruffunktion übergeben wird, auf MibInitialNotificationfestgelegt ist. Diese Situation kann nur auftreten, wenn der InitialNotification Parameter, der an NotifyTeredoPortChange übergeben wird, auf TRUE festgelegt wurde, wenn der Treiber für Änderungsbenachrichtigungen registriert wurde.

IN MIB_NOTIFICATION_TYPE NotificationType-

Der Benachrichtigungstyp. Dieses Element kann einer der Werte aus dem MIB_NOTIFICATION_TYPE Enumerationstyp sein.

Ihr Treiber kann die GetTeredoPort-Funktion verwenden, um die ursprüngliche UDP-Portnummer abzurufen, die der Teredo-Client für den Teredo-Dienstport verwendet hat.

Der Teredo-Port ist dynamisch und kann sich jederzeit ändern, wenn der Teredo-Client auf dem lokalen Computer neu gestartet wird. Ein Treiber kann sich registrieren, um benachrichtigt zu werden, wenn sich der Teredo-Dienstport ändert, indem er die funktion NotifyTeredoPortChange aufruft.

Der Teredo-Client verwendet auch statische UDP-Port 3544 zum Überwachen von Multicast-Datenverkehr, der auf Multicast-IPv4-Adresse 224.0.0.253 gemäß RFC 4380 gesendet wird. Weitere Informationen finden Sie unter Teredo: Tunneln von IPv6 über UDPthrough Network Address Translation (NATs).

Die NotifyTeredoPortChange-Funktion wird hauptsächlich von Firewalltreibern verwendet, um die entsprechenden Ausnahmen zu konfigurieren, um eingehenden und ausgehenden Teredo-Datenverkehr zu aktivieren.

Rufen Sie zum Aufheben der Registrierung des Treibers für Änderungsbenachrichtigungen die CancelMibChangeNotify2--Funktion auf, und übergeben Sie den NotificationHandle Parameter, den die NotifyTeredoPortChange--Funktion zurückgibt.

Anforderungen

Zielplattform

universelle

Version

Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.

Kopfball

Netioapi.h (include Netioapi.h)

Bibliothek

Netio.lib

IRQL

< DISPATCH_LEVEL

Siehe auch

CancelMibChangeNotify2

GetTeredoPort-

NotifyStableUnicastIpAddressTable