Freigeben über


RtmCreateDestEnum-Funktion (rtmv2.h)

Die RtmCreateDestEnum-Funktion startet eine Enumeration der Ziele in der Routingtabelle. Ein Client kann Ziele für eine oder mehrere Ansichten oder für alle Ansichten auflisten.

Syntax

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

Parameter

[in] RtmRegHandle

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

[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 Ziele in die Enumeration eingeschlossen werden sollen. Es werden zwei Flags verwendet. verwenden Sie ein Flag aus jeder Gruppe (z. B. RTM_ENUM_ALL_DESTS und RTM_ENUM_START).

Konstante Bedeutung
RTM_ENUM_ALL_DESTS
Gibt alle Ziele zurück.
RTM_ENUM_OWN_DESTS
Gibt Ziele zurück, für die der Client die beste Route zu einem Ziel in einer der angegebenen Ansichten besitzt.
 
Konstante Bedeutung
RTM_ENUM_NEXT
Listet Ziele ab der angegebenen Adress-/Maskenlänge auf (z. B. 10/8). Die Enumeration wird bis zum Ende der Routingtabelle fortgesetzt.
RTM_ENUM_RANGE
Listet Ziele in dem Bereich auf, der durch die Adress-/Maskenlänge angegeben wird (z. B. 10/8).
RTM_ENUM_START
Listet Ziele ab 0/0 auf. Geben Sie NULL für NetAddress an.

[in] NetAddress

Zeiger auf eine RTM_NET_ADDRESS-Struktur , die die Startadresse der Enumeration enthält. Geben Sie NULL an, wenn EnumFlags RTM_ENUM_START enthält.

[in] ProtocolId

Gibt den Protokollbezeichner an, mit dem die besten Routeninformationen ermittelt werden, die von der RtmGetEnumDests-Funktion zurückgegeben werden. Die ProtocolID ist nicht Teil der Suchkriterien. Der Routingtabellen-Manager verwendet diesen Bezeichner, um zu bestimmen, welche Routeninformationen zurückgegeben werden sollen (wenn z. B. ein Client den RIP-Protokollbezeichner angibt, wird die beste RIP-Route zurückgegeben, auch wenn eine Nicht-RIP-Route die beste Route zum Ziel ist).

Geben Sie RTM_BEST_PROTOCOL an, um eine Route zurückzugeben, unabhängig davon, welches Protokoll sie besitzt. Geben Sie RTM_THIS_PROTOCOL an, um die beste Route für das aufrufende Protokoll zurückzugeben.

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

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

RtmDeleteEnumHandle

RtmGetEnumDests

RtmReleaseDests