Freigeben über


RtmCreateRouteEnum-Funktion (rtmv2.h)

Die RtmCreateRouteEnum-Funktion erstellt eine Enumeration der Routen für ein bestimmtes Ziel oder einen bestimmten Zielbereich in der Routingtabelle. Ein Client kann Routen für eine oder mehrere Ansichten oder für alle Ansichten auflisten.

Syntax

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

Parameter

[in] RtmRegHandle

Handle mit dem Client, der von einem vorherigen Aufruf von RtmRegisterEntity abgerufen wurde.

[in] DestHandle

Handle mit dem Ziel, für das Routen aufgelistet werden sollen. Dieser Parameter ist optional und kann auf NULL festgelegt werden. Wenn SIE NULL angeben, werden alle Routen für alle Ziele aufgelistet. Geben Sie NULL an, wenn EnumFlags RTM_ENUM_START enthält.

[in] TargetViews

Gibt den Satz von Ansichten an, die beim Erstellen der Enumeration verwendet werden sollen. Die folgenden Flags werden verwendet.

Konstante Bedeutung
RTM_VIEW_MASK_ANY
Gibt Ziele aus allen Ansichten zurück. Dies ist der Standardwert.
RTM_VIEW_MASK_UCAST
Gibt Ziele aus der Unicastansicht zurück.
RTM_VIEW_MASK_MCAST
Gibt Ziele aus der Multicastansicht zurück.

[in] EnumFlags

Gibt an, welche Routen in die Enumeration eingeschlossen werden sollen. Es werden zwei Flags verwendet. verwenden Sie ein Flag aus jeder Gruppe (z. B. RTM_ENUM_ALL_ROUTES und RTM_ENUM_START).

Konstante Bedeutung
RTM_ENUM_ALL_ROUTES
Gibt alle Routen zurück.
RTM_ENUM_OWN_ROUTES
Gibt nur die Routen zurück, die der Client besitzt.
 
Konstante Bedeutung
RTM_ENUM_NEXT
Listet Routen auf, die mit der angegebenen Adress-/Maskenlänge beginnen (z. B. 10/8). Die Enumeration wird bis zum Ende der Routingtabelle fortgesetzt.
RTM_ENUM_RANGE
Listet Routen in dem angegebenen Bereich auf, der durch die Adress-/Maskenlänge angegeben wird (z. B. 10/8).
RTM_ENUM_START
Listet Routen auf, die bei 0/0 beginnen. Geben Sie NULL für NetAddress an.

[in] StartDest

Zeiger auf eine RTM_NET_ADDRESS-Struktur , die die Startadresse der Enumeration enthält. Dieser Parameter wird ignoriert, wenn EnumFlags RTM_ENUM_START enthält.

[in] MatchingFlags

Gibt die Elemente der Route an, die übereinstimmen sollen. Sofern nicht anders angegeben, werden nur Routen zurückgegeben, die den in CriteriaRoute und CriteriaInterface angegebenen Kriterien entsprechen. Die folgenden Flags werden verwendet.

Konstante Bedeutung
RTM_MATCH_FULL
Stimmen Sie Routen mit allen Kriterien ab.
RTM_MATCH_INTERFACE
Stimmen Sie Routen ab, die sich auf derselben Schnittstelle befinden. Der Client kann NULL für CriteriaRoute angeben.
RTM_MATCH_NEIGHBOUR
Passen Sie Routen mit demselben Nachbarn ab.
RTM_MATCH_NEXTHOP
Stimmen Sie Routen ab, die denselben nächsten Hop aufweisen.
RTM_MATCH_NONE
Entspricht keines der Kriterien; alle Routen für das Ziel werden zurückgegeben. Der CriteriaRoute-Parameter wird ignoriert, wenn dieses Flag festgelegt ist.
RTM_MATCH_OWNER
Stimmen Sie Routen mit demselben Besitzer ab.
RTM_MATCH_PREF
Stimmen Sie Routen ab, die die gleiche Einstellung haben.

[in] CriteriaRoute

Gibt an, welche Routen aufgelistet werden sollen. Dieser Parameter ist optional und kann auf NULL festgelegt werden, wenn MatchingFlags RTM_MATCH_INTERFACE oder RTM_MATCH_NONE enthält.

[in] CriteriaInterface

Zeiger auf einen ULONG-Wert , der angibt, auf welchen Schnittstellenrouten sich Routen befinden sollen. Dieser Parameter wird ignoriert, es sei denn , MatchingFlags enthält RTM_MATCH_INTERFACE.

[out] RtmEnumHandle

Bei der Eingabe ist RtmEnumHandle ein Zeiger auf NULL.

Bei der Ausgabe empfängt RtmEnumHandle einen Zeiger auf ein Handle auf die Enumeration. Verwenden Sie dieses Handle in allen nachfolgenden Aufrufen von RtmGetEnumRoutes, RtmReleaseRoutes und RtmDeleteEnumHandle.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert NO_ERROR.

Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Fehlercodes.

Wert Bedeutung
ERROR_INVALID_PARAMETER
Ein Parameter enthält falsche Informationen.
ERROR_NOT_ENOUGH_MEMORY
Es ist nicht genügend Arbeitsspeicher vorhanden, um diesen Vorgang abzuschließen.
ERROR_NOT_SUPPORTED
Mindestens eine der angegebenen Ansichten wird nicht unterstützt.
 
 

Hinweise

Wenn EnumFlags RTM_ENUM_RANGE enthält, verwenden Sie NetAddress , um den Bereich der Routingtabelle anzugeben, die aufgelistet werden soll. Wenn ein Client netAddress beispielsweise auf 10/8 festlegt, werden Ziele im Bereich 10.0.0.0/8 bis 10.255.255.255/32 zurückgegeben.

Wenn das Enumerationshandle nicht mehr erforderlich ist, geben Sie es frei, indem Sie RtmDeleteEnumHandle aufrufen.

Beispielcode mit dieser Funktion finden Sie unter Enumerate All Routes.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Nicht unterstützt
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile rtmv2.h
Bibliothek Rtm.lib
DLL Rtm.dll

Weitere Informationen

RTM_NET_ADDRESS

RTM_ROUTE_INFO

RtmDeleteEnumHandle

RtmGetEnumRoutes

RtmReleaseRoutes