Partager via


Fonction RtmCreateDestEnum (rtmv2.h)

La fonction RtmCreateDestEnum démarre une énumération des destinations dans la table de routage. Un client peut énumérer des destinations pour une ou plusieurs vues, ou pour toutes les vues.

Syntaxe

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
);

Paramètres

[in] RtmRegHandle

Gérez le client obtenu à partir d’un appel précédent à RtmRegisterEntity.

[in] TargetViews

Spécifie l’ensemble de vues à utiliser lors de la création de l’énumération. Les indicateurs suivants sont utilisés.

Constant Signification
RTM_VIEW_MASK_ANY
Retourner les destinations de toutes les vues. Il s’agit de la valeur par défaut.
RTM_VIEW_MASK_UCAST
Retourner des destinations à partir de la vue monodiffusion.
RTM_VIEW_MASK_MCAST
Retourner les destinations à partir de la vue multidiffusion.

[in] EnumFlags

Spécifie les destinations à inclure dans l’énumération. Deux ensembles d’indicateurs sont utilisés ; utilisez un indicateur de chaque ensemble (par exemple, utilisez RTM_ENUM_ALL_DESTS et RTM_ENUM_START).

Constant Signification
RTM_ENUM_ALL_DESTS
Retourne toutes les destinations.
RTM_ENUM_OWN_DESTS
Destinations de retour pour lesquelles le client possède la meilleure route vers une destination dans l’une des vues spécifiées.
 
Constant Signification
RTM_ENUM_NEXT
Énumérez les destinations en commençant à la longueur d’adresse/de masque spécifiée (par exemple, 10/8). L’énumération se poursuit jusqu’à la fin de la table de routage.
RTM_ENUM_RANGE
Énumérez les destinations dans la plage spécifiée par la longueur de l’adresse/du masque (par exemple, 10/8).
RTM_ENUM_START
Énumérez les destinations à partir de 0/0. Spécifiez NULL pour NetAddress.

[in] NetAddress

Pointeur vers une structure RTM_NET_ADDRESS qui contient l’adresse de départ de l’énumération. Spécifiez NULL si EnumFlags contient RTM_ENUM_START.

[in] ProtocolId

Spécifie l’identificateur de protocole utilisé pour déterminer les meilleures informations d’itinéraire retournées par la fonction RtmGetEnumDests . ProtocolID ne fait pas partie des critères de recherche. Le gestionnaire de tables de routage utilise cet identificateur pour déterminer les informations d’itinéraire à retourner (par exemple, si un client spécifie l’identificateur de protocole RIP, le meilleur itinéraire RIP est retourné, même si un itinéraire non-RIP est le meilleur itinéraire vers la destination).

Spécifiez RTM_BEST_PROTOCOL pour retourner un itinéraire, quel que soit le protocole qui en est propriétaire. Spécifiez RTM_THIS_PROTOCOL pour retourner le meilleur itinéraire pour le protocole d’appel.

[out] RtmEnumHandle

Lors de l’entrée, RtmEnumHandle est un pointeur vers NULL.

À la sortie, RtmEnumHandle reçoit un pointeur vers un handle vers l’énumération. Utilisez ce handle dans tous les appels suivants à RtmGetEnumDests, RtmReleaseDests et RtmDeleteEnumHandle.

Valeur retournée

Si la fonction réussit, la valeur de retour est NO_ERROR.

Si la fonction échoue, la valeur de retour est l’un des codes d’erreur suivants.

Valeur Signification
ERROR_INVALID_PARAMETER
Un paramètre contient des informations incorrectes.
ERROR_NOT_ENOUGH_MEMORY
La mémoire est insuffisante pour effectuer cette opération.
ERROR_NOT_SUPPORTED
Une ou plusieurs des vues spécifiées ne sont pas prises en charge.

Remarques

Si EnumFlags contient RTM_ENUM_RANGE, utilisez NetAddress pour spécifier la plage de la table de routage à énumérer. Par exemple, si un client définit NetAddress sur 10/8, les destinations comprises entre 10.0.0.0/8 et 10.255.255.255/32 sont retournées.

Lorsque le handle d’énumération n’est plus nécessaire, relâchez-le en appelant RtmDeleteEnumHandle.

Pour obtenir un exemple de code utilisant cette fonction, consultez Énumérer toutes les destinations.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Aucun pris en charge
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête rtmv2.h
Bibliothèque Rtm.lib
DLL Rtm.dll

Voir aussi

RTM_NET_ADDRESS

RtmDeleteEnumHandle

RtmGetEnumDests

RtmReleaseDests