Condividi tramite


Funzione RtmAddNextHop (rtmv2.h)

La funzione RtmAddNextHop aggiunge una nuova voce hop successiva o aggiorna una voce di hop successivo esistente all'elenco hop successivo di un client. Se esiste già un hop successivo, gestione tabelle di routing restituisce un handle all'hop successivo. Questo handle può quindi essere usato per specificare un hop successivo a una destinazione durante l'aggiunta o l'aggiornamento di una route.

Sintassi

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

Parametri

[in] RtmRegHandle

Gestire il client ottenuto da una chiamata precedente a RtmRegisterEntity.

[in] NextHopInfo

Puntatore a una struttura contenente informazioni che identificano l'hop successivo da aggiungere o aggiornare. I membri NextHopOwner e State vengono ignorati; questi membri vengono impostati dalla gestione tabelle di routing. Il membro Flags può essere uno dei valori seguenti.

Flag Significato
RTM_NEXTHOP_FLAGS_REMOTE
Questo hop successivo punta a una destinazione remota che non è raggiungibile direttamente. Per ottenere il percorso completo, il client deve eseguire una ricerca ricorsiva.
RTM_NEXTHOP_FLAGS_DOWN
Questo flag è riservato per l'uso futuro.

[in, out] NextHopHandle

Se il client ha un handle (client sta aggiornando un hop successivo): in input NextHopHandle è un puntatore all'handle hop successivo. Nell'output , NextHopHandle è invariato.

Se il client non dispone di un handle e un handle deve essere restituito (il client aggiunge o aggiorna un hop successivo): in input NextHopHandle è un puntatore a NULL. Nell'output , NextHopHandle riceve un puntatore all'handle hop successivo. I valori in NextHopInfo vengono usati per identificare l'hop successivo da aggiornare.

Se un handle non deve essere restituito (il client aggiunge o aggiorna un hop successivo): in input , NextHopHandle è NULL. I valori in NextHopInfo vengono usati per identificare l'hop successivo da aggiornare.

[out] ChangeFlags

In input ChangeFlags è un puntatore a un tipo di dati RTM_NEXTHOP_CHANGE_FLAGS .

Nell'output , ChangeFlags riceve un flag che indica se è stato aggiunto o aggiornato un hop successivo. Se ChangeFlags è zero, è stato aggiornato un hop successivo; se ChangeFlags è RTM_NEXTHOP_CHANGE_NEW, è stato aggiunto un hop successivo.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è NO_ERROR.

Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.

Valore Significato
ERROR_ACCESS_DENIED
Il client chiamante non possiede questo hop successivo.
ERROR_NOT_ENOUGH_MEMORY
Memoria insufficiente per completare questa operazione.
 
 

Commenti

Se NextHopHandle punta a un handle non NULL , l'hop successivo specificato dall'handle viene aggiornato. In caso contrario, viene eseguita una ricerca per l'indirizzo specificato da NextHopInfo. Se viene trovato un hop successivo, viene aggiornato. Se non viene trovata alcuna corrispondenza, viene aggiunto un nuovo hop successivo.

Se viene restituito un handle, rilasciare l'handle quando non è più richiesto chiamando RtmReleaseNextHops.

Requisiti

   
Client minimo supportato Nessuno supportato
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione rtmv2.h
Libreria Rtm.lib
DLL Rtm.dll

Vedi anche

Flag hop successivi

RTM_NEXTHOP_INFO

RtmDeleteNextHop

RtmFindNextHop

RtmGetNextHopPointer

RtmLockNextHop

RtmReleaseNextHops