Freigeben über


NotifyTeredoPortChange-Funktion

Die NotifyTeredoPortChange-Funktion registriert den Treiber, der über Änderungen an der UDP-Portnummer benachrichtigt wird, 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 eine Teredo-Clientportänderung auftritt. 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 wird, 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 wurde.

  • NotificationHandle [in, out]
    Ein Zeiger, der verwendet wird, um ein Handle zurückzugeben, das Ihr Treiber später verwenden kann, um die Registrierung der Treiberänderungsbenachrichtigung aufzuheben. 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 einen der folgenden Fehlercodes zurück:

Rückgabecode Beschreibung
ERROR_INVALID_HANDLE

Es ist ein interner Fehler aufgetreten, bei dem ein ungültiges Handle aufgetreten ist.

STATUS_INVALID_PARAMETER

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

STATUS_NOT_ENOUGH_MEMORY

Es war 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 VOID definiert werden. Die Parameter, die an die Rückruffunktion übergeben werden, umfassen Folgendes.

Parameter BESCHREIBUNG

IN PVOID CallerContext

Der CallerContext-Parameter , der an die NotifyTeredoPortChange-Funktion ü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 MibInitialNotification festgelegt ist. Diese Situation kann nur auftreten, wenn der InitialNotification-Parameter , der an NotifyTeredoPortChange übergeben wird, beim Registrieren des Treibers für Änderungsbenachrichtigungen auf TRUE festgelegt wurde.

IN MIB_NOTIFICATION_TYPE NotificationType

Der Benachrichtigungstyp. Dieser Member kann einer der Werte aus dem MIB_NOTIFICATION_TYPE Enumerationstyp sein.

Ihr Treiber kann die GetTeredoPort-Funktion verwenden, um die anfä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 NotifyTeredoPortChange-Funktion aufruft .

Der Teredo-Client verwendet auch den statischen UDP-Port 3544 zum Lauschen von Multicastdatenverkehr, der an die Multicast-IPv4-Adresse 224.0.0.253 gesendet wird, wie in RFC 4380 definiert. Weitere Informationen finden Sie unter Teredo: Tunneling IPv6 over UDPthrough Network Address Translations (NATs).

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

Um die Registrierung des Treibers für Änderungsbenachrichtigungen aufzuheben, rufen Sie die CancelMibChangeNotify2-Funktion auf, und übergeben Sie den NotificationHandle-Parameter , den die NotifyTeredoPortChange-Funktion zurückgibt.

Anforderungen

Zielplattform

Universell

Version

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

Header

Netioapi.h (netioapi.h einschließen)

Bibliothek

Netio.lib

IRQL

< DISPATCH_LEVEL

Weitere Informationen

CancelMibChangeNotify2

GetTeredoPort

NotifyStableUnicastIpAddressTable