Condividi tramite


Funzione RtmCreateDestEnum (rtmv2.h)

La funzione RtmCreateDestEnum avvia un'enumerazione delle destinazioni nella tabella di routing. Un client può enumerare le destinazioni per una o più visualizzazioni o per tutte le visualizzazioni.

Sintassi

DWORD RtmCreateDestEnum(
  [in]  RTM_ENTITY_HANDLE RtmRegHandle,
  [in]  RTM_VIEW_SET      TargetViews,
  [in]  RTM_ENUM_FLAGS    EnumFlags,
  [in]  PRTM_NET_ADDRESS  NetAddress,
  [in]  ULONG             ProtocolId,
  [out] PRTM_ENUM_HANDLE  RtmEnumHandle
);

Parametri

[in] RtmRegHandle

Handle per il client ottenuto da una chiamata precedente a RtmRegisterEntity.

[in] TargetViews

Specifica il set di viste da utilizzare 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
Destinazioni restituite dalla vista unicast.
RTM_VIEW_MASK_MCAST
Restituisce destinazioni dalla visualizzazione multicast.

[in] EnumFlags

Specifica le destinazioni da includere nell'enumerazione . Vengono utilizzati due set di flag; usare un flag da ogni set, ad esempio usare RTM_ENUM_ALL_DESTS e RTM_ENUM_START.

Costante Significato
RTM_ENUM_ALL_DESTS
Restituisce tutte le destinazioni.
RTM_ENUM_OWN_DESTS
Restituisce le destinazioni per cui il client possiede la route migliore verso una destinazione in una delle visualizzazioni specificate.
 
Costante Significato
RTM_ENUM_NEXT
Enumerare le destinazioni a partire dalla lunghezza di indirizzo/maschera specificata, ad esempio 10/8. L'enumerazione continua fino alla fine della tabella di routing.
RTM_ENUM_RANGE
Enumerare le destinazioni nell'intervallo specificato dalla lunghezza dell'indirizzo/maschera ,ad esempio 10/8.
RTM_ENUM_START
Enumerare le destinazioni a partire da 0/0. Specificare NULL per NetAddress.

[in] NetAddress

Puntatore a una struttura RTM_NET_ADDRESS che contiene l'indirizzo iniziale dell'enumerazione. Specificare NULL se EnumFlags contiene RTM_ENUM_START.

[in] ProtocolId

Specifica l'identificatore del protocollo utilizzato per determinare le informazioni sulla route migliori restituite dalla funzione RtmGetEnumDests . ProtocolID non fa parte dei criteri di ricerca. Gestione tabelle di routing usa questo identificatore per determinare le informazioni sulla route da restituire( ad esempio, se un client specifica l'identificatore del protocollo RIP, viene restituita la route RIP migliore, anche se una route non RIP è la route migliore per la destinazione).

Specificare RTM_BEST_PROTOCOL per restituire una route indipendentemente dal protocollo proprietario. Specificare RTM_THIS_PROTOCOL per restituire la route migliore per il protocollo chiamante.

[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 RtmGetEnumDests, RtmReleaseDests e RtmDeleteEnumHandle.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene 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ù viste specificate non sono supportate.

Commenti

Se EnumFlags contiene RTM_ENUM_RANGE, usare NetAddress per specificare l'intervallo della tabella di routing da 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 destinazioni.

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

RtmDeleteEnumHandle

RtmGetEnumDests

RtmReleaseDests