Condividi tramite


Funzione RtmCreateRouteEnum (rtmv2.h)

La funzione RtmCreateRouteEnum crea un'enumerazione delle route per una determinata destinazione o intervallo di destinazioni nella tabella di routing. Un client può enumerare le route per una o più visualizzazioni o per tutte le visualizzazioni.

Sintassi

DWORD RtmCreateRouteEnum(
  [in]  RTM_ENTITY_HANDLE RtmRegHandle,
  [in]  RTM_DEST_HANDLE   DestHandle,
  [in]  RTM_VIEW_SET      TargetViews,
  [in]  RTM_ENUM_FLAGS    EnumFlags,
  [in]  PRTM_NET_ADDRESS  StartDest,
  [in]  RTM_MATCH_FLAGS   MatchingFlags,
  [in]  PRTM_ROUTE_INFO   CriteriaRoute,
  [in]  ULONG             CriteriaInterface,
  [out] PRTM_ENUM_HANDLE  RtmEnumHandle
);

Parametri

[in] RtmRegHandle

Gestire il client ottenuto da una chiamata precedente a RtmRegisterEntity.

[in] DestHandle

Gestire la destinazione per cui enumerare le route. Questo parametro è facoltativo e può essere impostato su NULL; specificando NULL enumera tutte le route per tutte le destinazioni. Specificare NULL se EnumFlags contiene RTM_ENUM_START.

[in] TargetViews

Specifica il set di visualizzazioni da usare durante la creazione dell'enumerazione. Vengono usati i flag seguenti.

Costante Significato
RTM_VIEW_MASK_ANY
Restituisce destinazioni da tutte le visualizzazioni. Si tratta del valore predefinito.
RTM_VIEW_MASK_UCAST
Restituire le destinazioni dalla vista unicast.
RTM_VIEW_MASK_MCAST
Restituire destinazioni dalla visualizzazione multicast.

[in] EnumFlags

Specifica le route da includere nell'enumerazione. Vengono usati due set di flag; usare un flag da ogni set, ad esempio RTM_ENUM_ALL_ROUTES e RTM_ENUM_START.

Costante Significato
RTM_ENUM_ALL_ROUTES
Restituisce tutte le route.
RTM_ENUM_OWN_ROUTES
Restituisce solo le route proprietarie del client.
 
Costante Significato
RTM_ENUM_NEXT
Enumerare le route a partire dalla lunghezza dell'indirizzo/maschera specificata, ad esempio 10/8. L'enumerazione continua alla fine della tabella di routing.
RTM_ENUM_RANGE
Enumerare le route nell'intervallo specificato dalla lunghezza dell'indirizzo/maschera , ad esempio 10/8.
RTM_ENUM_START
Enumerare le route a partire da 0/0. Specificare NULL per NetAddress.

[in] StartDest

Puntatore a una struttura RTM_NET_ADDRESS contenente l'indirizzo iniziale dell'enumerazione. Questo parametro viene ignorato se EnumFlags contiene RTM_ENUM_START.

[in] MatchingFlags

Specifica gli elementi della route da trovare. Vengono restituite solo route che corrispondono ai criteri specificati in CriteriaRoute e CriteriaInterface , a meno che non sia stato specificato in altro modo. Vengono usati i flag seguenti.

Costante Significato
RTM_MATCH_FULL
Trovare le route corrispondenti a tutti i criteri.
RTM_MATCH_INTERFACE
Route di corrispondenza che si trovano nella stessa interfaccia. Il client può specificare NULL per CriteriaRoute.
RTM_MATCH_NEIGHBOUR
Match route con lo stesso vicino.
RTM_MATCH_NEXTHOP
Route di corrispondenza con lo stesso hop successivo.
RTM_MATCH_NONE
Non corrispondono a nessuno dei criteri; vengono restituite tutte le route per la destinazione. Il parametro CriteriaRoute viene ignorato se questo flag è impostato.
RTM_MATCH_OWNER
Corrisponde alle route con lo stesso proprietario.
RTM_MATCH_PREF
Route di corrispondenza che hanno la stessa preferenza.

[in] CriteriaRoute

Specifica le route da enumerare. Questo parametro è facoltativo e può essere impostato su NULL se MatchingFlags contiene RTM_MATCH_INTERFACE o RTM_MATCH_NONE.

[in] CriteriaInterface

Puntatore a un ULONG che specifica su quali interfacce devono trovarsi le route. Questo parametro viene ignorato a meno che matchingFlags non contenga RTM_MATCH_INTERFACE.

[out] RtmEnumHandle

In input , RtmEnumHandle è un puntatore a NULL.

Nell'output , RtmEnumHandle riceve un puntatore a un handle per l'enumerazione. Usare questo handle in tutte le chiamate successive a RtmGetEnumRoutes, RtmReleaseRoutes e RtmDeleteEnumHandle.

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_INVALID_PARAMETER
Un parametro contiene informazioni non corrette.
ERROR_NOT_ENOUGH_MEMORY
Memoria insufficiente per completare questa operazione.
ERROR_NOT_SUPPORTED
Una o più visualizzazioni specificate non sono supportate.
 
 

Commenti

Se EnumFlags contiene RTM_ENUM_RANGE, usare NetAddress per specificare l'intervallo della tabella di routing per enumerare. Ad esempio, se un client imposta NetAddress su 10/8, le destinazioni nell'intervallo 10.0.0.0/8 su 10.255.255.255/32 vengono restituite.

Quando l'handle di enumerazione non è più necessario, rilasciarlo chiamando RtmDeleteEnumHandle.

Per il codice di esempio che usa questa funzione, vedere Enumerare tutte le route.

Requisiti

Requisito Valore
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

RTM_NET_ADDRESS

RTM_ROUTE_INFO

RtmDeleteEnumHandle

RtmGetEnumRoutes

RtmReleaseRoutes