Freigeben über


RtmAddNextHop-Funktion (rtmv2.h)

Die RtmAddNextHop-Funktion fügt einen neuen Next-Hop-Eintrag hinzu oder aktualisiert einen vorhandenen Next-Hop-Eintrag zur Next-Hop-Liste eines Clients. Wenn bereits ein nächster Hop vorhanden ist, gibt der Routingtabellen-Manager ein Handle an den nächsten Hop zurück. Dieses Handle kann dann verwendet werden, um einen nächsten Hop zu einem Ziel anzugeben, wenn eine Route hinzugefügt oder aktualisiert wird.

Syntax

DWORD RtmAddNextHop(
  [in]      RTM_ENTITY_HANDLE         RtmRegHandle,
  [in]      PRTM_NEXTHOP_INFO         NextHopInfo,
  [in, out] PRTM_NEXTHOP_HANDLE       NextHopHandle,
  [out]     PRTM_NEXTHOP_CHANGE_FLAGS ChangeFlags
);

Parameter

[in] RtmRegHandle

Handle an den Client, der von einem vorherigen Aufruf von RtmRegisterEntity abgerufen wurde.

[in] NextHopInfo

Zeiger auf eine Struktur, die Informationen enthält, die den nächsten Hop identifizieren, der hinzugefügt oder aktualisiert werden soll. Die Member NextHopOwner und State werden ignoriert. diese Member werden vom Routingtabellen-Manager festgelegt. Das Flags-Element kann einer der folgenden Werte sein.

Flag Bedeutung
RTM_NEXTHOP_FLAGS_REMOTE
Dieser nächste Hop verweist auf ein Remoteziel, das nicht direkt erreichbar ist. Um den vollständigen Pfad abzurufen, muss der Client eine rekursive Suche durchführen.
RTM_NEXTHOP_FLAGS_DOWN
Dieses Flag ist für die zukünftige Verwendung reserviert.

[in, out] NextHopHandle

Wenn der Client über ein Handle verfügt (der Client aktualisiert einen nächsten Hop): Bei der Eingabe ist NextHopHandle ein Zeiger auf das Handle für den nächsten Hop. Bei der Ausgabe bleibt NextHopHandle unverändert.

Wenn der Client über kein Handle verfügt und ein Handle zurückgegeben werden muss (der Client fügt einen nächsten Hop hinzu oder aktualisiert diese): Bei der Eingabe ist NextHopHandle ein Zeiger auf NULL. Bei der Ausgabe empfängt NextHopHandle einen Zeiger auf das Handle für den nächsten Hop. Die Werte in NextHopInfo werden verwendet, um den nächsten zu aktualisierenden Hop zu identifizieren.

Wenn kein Handle zurückgegeben werden muss (client fügt einen nächsten Hop hinzu oder aktualisiert): Bei der Eingabe ist NextHopHandleNULL. Die Werte in NextHopInfo werden verwendet, um den nächsten zu aktualisierenden Hop zu identifizieren.

[out] ChangeFlags

Bei der Eingabe ist ChangeFlags ein Zeiger auf einen RTM_NEXTHOP_CHANGE_FLAGS Datentyp.

Bei der Ausgabe empfängt ChangeFlags ein Flag, das angibt, ob ein nächster Hop hinzugefügt oder aktualisiert wurde. Wenn ChangeFlags null ist, wurde ein nächster Hop aktualisiert. Wenn ChangeFlagsRTM_NEXTHOP_CHANGE_NEW ist, wurde ein nächster Hop hinzugefügt.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert NO_ERROR.

Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Fehlercodes.

Wert Bedeutung
ERROR_ACCESS_DENIED
Der aufrufende Client besitzt diesen nächsten Hop nicht.
ERROR_NOT_ENOUGH_MEMORY
Es ist nicht genügend Arbeitsspeicher vorhanden, um diesen Vorgang abzuschließen.
 
 

Hinweise

Wenn NextHopHandle auf ein Handle ohne NULL zeigt, wird der nächste Hop aktualisiert, der durch das Handle angegeben wird. Andernfalls wird nach der von NextHopInfo angegebenen Adresse gesucht. Wenn ein nächster Hop gefunden wird, wird er aktualisiert. Wenn keine Übereinstimmung gefunden wird, wird ein neuer nächster Hop hinzugefügt.

Wenn ein Handle zurückgegeben wurde, geben Sie das Handle frei, wenn es nicht mehr benötigt wird, indem Sie RtmReleaseNextHops aufrufen.

Anforderungen

   
Unterstützte Mindestversion (Client) Nicht unterstützt
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile rtmv2.h
Bibliothek Rtm.lib
DLL Rtm.dll

Weitere Informationen

Flags des nächsten Hops

RTM_NEXTHOP_INFO

RtmDeleteNextHop

RtmFindNextHop

RtmGetNextHopPointer

RtmLockNextHop

RtmReleaseNextHops