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.

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, 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.

Rückgabewert

Der Rückgabewert ist einer der folgenden Codes.

Wert BESCHREIBUNG
NO_ERROR
Die Route wurde erfolgreich hinzugefügt oder aktualisiert.
ERROR_INVALID_HANDLE
Der Clienthandleparameter ist kein gültiges Handle.
ERROR_INVALID_PARAMETER
Die Routenstruktur enthält einen ungültigen Parameter.
ERROR_NO_SYSTEM_RESOURCES
Es gibt nicht genügend Ressourcen, um den Vorgang auszuführen.
ERROR_NOT_ENOUGH_MEMORY
Es ist nicht genügend Arbeitsspeicher vorhanden, um den Routeneintrag zuzuordnen.

Bemerkungen

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.

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
Rtm.h
Bibliothek
Rtm.lib
DLL
Rtm.dll

Weitere Informationen

Routingtabellen-Manager, Version 1-Referenz

Routingtabellen-Manager- Version 1-Funktionen

RtmDeleteRoute

RtmDequeueRouteChangeMessage