RtmAddRoute-Funktion
[Diese API wurde durch die Routing Table Manager Version 2-API ersetzt und ist nicht mehr als Windows Server 2003 verfügbar. Anwendungen sollten die Routing Table Manager Version 2-API verwenden.]
Die RtmAddRoute-Funktion fügt einen Routeneintrag hinzu oder aktualisiert einen vorhandenen Routeneintrag.
Syntax
DWORD RtmAddRoute(
_In_ HANDLE ClientHandle,
_In_ PVOID Route,
_In_ DWORD TimeToLive,
_Out_ DWORD Flags,
_Out_ PVOID CurBestRoute,
_Out_ PVOID PrevBestRoute
);
Parameter
-
ClientHandle [ In]
-
Handle, das den Client und damit das Routingprotokoll identifiziert, das die Route hinzugefügt oder aktualisiert hat. Rufen Sie dieses Handle ab, indem Sie RtmRegisterClientaufrufen.
-
Route [ In]
-
Zeiger auf eine protokollfamilienspezifische Struktur, die die neue oder aktualisierte Route angibt. Die folgenden Felder werden vom Routingtabellen-Manager verwendet, um die Routingtabelle zu aktualisieren:
Wert Bedeutung - _RR-Netzwerk
Gibt die Zielnetzwerknummer an. - RR _ InterfaceID
Gibt den Index der Schnittstelle an, über die die Route empfangen wurde. - RR _ NextHopAddress
Gibt die Adresse des Routers des nächsten Hops an. - RR _ FamilySpecificData
Gibt Daten an, die für die Protokollfamilie spezifisch sind. Obwohl die Daten für den Routingtabellen-Manager transparent sind, werden sie beim Vergleich von Routen berücksichtigt, um festzustellen, ob sich Routeninformationen geändert haben. Die Daten werden auch zum Festlegen von Metrikwerten verwendet, die unabhängig vom Routingprotokoll sind. Folglich werden diese Daten verwendet, um die beste Route für das Zielnetzwerk zu bestimmen. - _RR-ProtokollSpecificData
Gibt Daten an, die spezifisch für das Routingprotokoll sind, das die Route bereitgestellt hat. - _RR-Zeitstempel
Gibt die aktuelle Systemzeit an. Dieses Feld wird vom Routingtabellen-Manager festgelegt. -
TimeToLive [ In]
-
Gibt die Anzahl der Sekunden an, die die angegebene Route in der Routingtabelle beibehalten werden soll. Wenn dieser Parameter auf INFINITE festgelegt ist, wird die Route beibehalten, bis sie explizit gelöscht wird. Das aktuelle Limit für TimeToLive beträgt 2147483 Sekunde (mehr als 24 Tage).
-
Flags [ out]
-
Zeiger auf eine DWORD-Variable. Der Wert dieser Variablen wird vom Routingtabellen-Manager festgelegt. Der Wert gibt den Typ der Änderung an und gibt an, welche Informationen in den bereitgestellten Puffern zurückgegeben wurden. Dieser Parameter ist einer der folgenden:
Flags Bedeutung - RTM _ NO _ CHANGE
Das Hinzufügen oder Aktualisieren hat entweder keinen der signifikanten Routenparameter geändert, oder der betroffene Routeneintrag ist nicht die beste Route unter den Einträgen für das Zielnetzwerk. - _RTM-ROUTE _ HINZUGEFÜGT
Die Route wurde für das Zielnetzwerk hinzugefügt. Der CurBestRoute-Parameter verweist auf die Informationen für die hinzugefügte Route. - _RTM-ROUTE _ GEÄNDERT
Mindestens einer der wichtigen Parameter wurde für die beste Route zum Zielnetzwerk geändert. Die wichtigsten Parameter sind:
Protokollbezeichner
Schnittstellenindex
Adresse des nächsten Hops
Protokollfamilienspezifische Daten (einschließlich Routenmetriken)Der PrevBestRoute-Parameter verweist auf die Routeninformationen wie vor der Änderung. Der CurBestRoute-Parameter verweist auf die aktuellen Routeninformationen (d. h. nach der Änderung).
-
CurBestRoute [ out]
-
Zeiger auf eine -Struktur, die ggf. die aktuellen Informationen zur besten Route empfängt. Der Typ der Struktur ist spezifisch für die Protokollfamilie, z. B. IP oder IPX.
Dieser Parameter ist optional. Wenn der Aufrufer NULL für diesen Parameter angibt, werden die aktuellen Informationen zur besten Route nicht zurückgegeben.
-
PrevBestRoute [ out]
-
Zeiger auf eine -Struktur, die ggf. die vorherigen Informationen zur besten Route empfängt. Der Typ der Struktur ist spezifisch für die Protokollfamilie, z. B. IP oder IPX.
Dieser Parameter ist optional. Wenn der Aufrufer NULL für diesen Parameter angibt, werden die vorherigen Informationen zur besten Route nicht zurückgegeben.
Rückgabewert
Der Rückgabewert ist einer der folgenden Codes.
| Wert | Beschreibung |
|---|---|
|
Die Route wurde erfolgreich hinzugefügt oder aktualisiert. |
|
Der Clienthandleparameter ist kein gültiges Handle. |
|
Die Routenstruktur enthält einen ungültigen Parameter. |
|
Es sind nicht genügend Ressourcen vorhanden, um den Vorgang auszuführen. |
|
Es ist nicht genügend Arbeitsspeicher zum Zuordnen des Routeneintrags vorhanden. |
Hinweise
Die Funktion generiert eine Routenänderungsmeldung, wenn sich die beste Route zu einem Zielnetzwerk als Ergebnis dieses Vorgangs geändert hat. Die Routenänderungsmeldung wird jedoch nicht an den Client gesendet, der diesen Aufruf sendet. Stattdessen werden relevante Informationen von dieser Funktion über die Parameter Flags, CurBestRoute und PrevBestRoute direkt an diesen Client zurückgegeben.
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Nicht unterstützt |
| Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
| Ende des Supports (Server) |
Windows Server 2003 |
| Header |
|
| Bibliothek |
|
| DLL |
|