Fonction RtmCreateRouteEnum (rtmv2.h)
La fonction RtmCreateRouteEnum crée une énumération des itinéraires pour une destination ou une plage particulière de destinations dans la table de routage. Un client peut énumérer des itinéraires pour une ou plusieurs vues, ou pour toutes les vues.
Syntaxe
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
);
Paramètres
[in] RtmRegHandle
Gérez le client obtenu à partir d’un appel précédent à RtmRegisterEntity.
[in] DestHandle
Gérez jusqu’à la destination pour laquelle énumérer les itinéraires. Ce paramètre est facultatif et peut être défini sur NULL ; la spécification de NULL énumère tous les itinéraires pour toutes les destinations. Spécifiez NULL si EnumFlags contient RTM_ENUM_START.
[in] TargetViews
Spécifie l’ensemble de vues à utiliser lors de la création de l’énumération. Les indicateurs suivants sont utilisés.
[in] EnumFlags
Spécifie les itinéraires à inclure dans l’énumération. Deux ensembles d’indicateurs sont utilisés ; utiliser un indicateur de chaque ensemble (par exemple, RTM_ENUM_ALL_ROUTES et RTM_ENUM_START).
Constant | Signification |
---|---|
|
Retourne tous les itinéraires. |
|
Retourne uniquement les routes dont le client est propriétaire. |
[in] StartDest
Pointeur vers une structure RTM_NET_ADDRESS qui contient l’adresse de départ de l’énumération. Ce paramètre est ignoré si EnumFlags contient RTM_ENUM_START.
[in] MatchingFlags
Spécifie les éléments de l’itinéraire à mettre en correspondance. Sauf indication contraire, seuls les itinéraires qui correspondent aux critères spécifiés dans CriteriaRoute et CriteriaInterface sont retournés. Les indicateurs suivants sont utilisés.
[in] CriteriaRoute
Spécifie les routes à énumérer. Ce paramètre est facultatif et peut être défini sur NULL si MatchingFlags contient RTM_MATCH_INTERFACE ou RTM_MATCH_NONE.
[in] CriteriaInterface
Pointeur vers un ULONG qui spécifie sur quelles interfaces les itinéraires doivent se trouver. Ce paramètre est ignoré, sauf si MatchingFlags contient RTM_MATCH_INTERFACE.
[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 à RtmGetEnumRoutes, RtmReleaseRoutes 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 |
---|---|
|
Un paramètre contient des informations incorrectes. |
|
La mémoire est insuffisante pour effectuer cette opération. |
|
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 tous les itinéraires.
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 |