RtmAddRoute-Funktion
[Diese API wurde von der Routing Table Manager Version 2-API abgelöst und ist über Windows Server 2003 hinaus nicht verfügbar. Anwendungen sollten die Api für Routingtabellen-Manager Version 2 verwenden.]
Die RtmAddRoute-Funktion fügt einen Routeneintrag hinzu oder aktualisiert einen vorhandenen Routeneintrag.
DWORD RtmAddRoute(
_In_ HANDLE ClientHandle,
_In_ PVOID Route,
_In_ DWORD TimeToLive,
_Out_ DWORD Flags,
_Out_ PVOID CurBestRoute,
_Out_ PVOID PrevBestRoute
);
-
ClientHandle [in]
-
Handle, das den Client und damit das Routingprotokoll identifiziert, der die Route hinzugefügt oder aktualisiert hat. Rufen Sie dieses Handle ab, indem Sie RtmRegisterClient aufrufen.
-
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_Network
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 für den nächsten Hop an. - RR_FamilySpecificData
Gibt Daten an, die für die Protokollfamilie spezifisch sind. Obwohl die Daten für den Routingtabellen-Manager transparent sind, wird sie beim Vergleichen von Routen berücksichtigt, um festzustellen, ob sich die Routeninformationen geändert haben. Die Daten werden auch verwendet, um Metrikwerte festzulegen, die vom Routingprotokoll unabhängig sind. Daher werden diese Daten verwendet, um die beste Route für das Zielnetzwerk zu ermitteln. - RR_ProtocolSpecificData
Gibt Daten an, die für das Routingprotokoll spezifisch sind, das die Route bereitgestellt hat. - RR_TimeStamp
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 (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 welche Informationen in den bereitgestellten Puffern zurückgegeben wurden. Bei diesem Parameter handelt es sich um einen der folgenden Parameter.
Flags Bedeutung - RTM_NO_CHANGE
Durch das Hinzufügen oder Aktualisieren wurden keine wichtigen Routenparameter geändert, oder der betroffene Routeneintrag ist nicht die beste Route unter den Einträgen für das Zielnetzwerk. - RTM_ROUTE_ADDED
Die Route wurde für das Zielnetzwerk hinzugefügt. Der CurBestRoute-Parameter verweist auf die Informationen für die hinzugefügte Route. - RTM_ROUTE_CHANGED
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 Parameter PrevBestRoute verweist auf die Routeninformationen, wie sie vor der Änderung waren. Der CurBestRoute-Parameter verweist auf die aktuellen (d. h. nach der Änderung) Routeninformationen.
-
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 Bestrouteninformationen 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 Bestrouteninformationen nicht zurückgegeben.
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 gibt nicht genügend Ressourcen, um den Vorgang auszuführen. |
|
Es ist nicht genügend Arbeitsspeicher vorhanden, um den Routeneintrag zuzuordnen. |
Die Funktion generiert eine Routenänderungsmeldung, wenn sich die beste Route zu einem Zielnetzwerk als Ergebnis dieses Vorgangs geändert hat. Die Route-Change-Nachricht wird jedoch nicht an den Client gesendet, der diesen Aufruf tätigt. Stattdessen werden relevante Informationen von dieser Funktion direkt über die Parameter Flags, CurBestRoute und PrevBestRoute an diesen Client zurückgegeben.
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 |
|