Bagikan melalui


Fungsi RtmCreateRouteEnum (rtmv2.h)

Fungsi RtmCreateRouteEnum membuat enumerasi rute untuk tujuan atau rentang tujuan tertentu dalam tabel perutean. Klien dapat menghitung rute untuk satu atau beberapa tampilan, atau untuk semua tampilan.

Sintaks

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

Tangani ke klien yang diperoleh dari panggilan sebelumnya ke RtmRegisterEntity.

[in] DestHandle

Tangani ke tujuan untuk menghitung rute. Parameter ini bersifat opsional, dan dapat diatur ke NULL; menentukan NULL menghitung semua rute untuk semua tujuan. Tentukan NULL jika EnumFlags berisi RTM_ENUM_START.

[in] TargetViews

Menentukan kumpulan tampilan yang akan digunakan saat membuat enumerasi. Bendera berikut digunakan.

Terus-menerus Makna
RTM_VIEW_MASK_ANY
Mengembalikan tujuan dari semua tampilan. Ini adalah nilai default.
RTM_VIEW_MASK_UCAST
Mengembalikan tujuan dari tampilan unicast.
RTM_VIEW_MASK_MCAST
Mengembalikan tujuan dari tampilan multicast.

[in] EnumFlags

Menentukan rute mana yang akan disertakan dalam enumerasi. Dua set bendera digunakan; gunakan satu bendera dari setiap set (seperti RTM_ENUM_ALL_ROUTES dan RTM_ENUM_START).

Terus-menerus Makna
RTM_ENUM_ALL_ROUTES
Mengembalikan semua rute.
RTM_ENUM_OWN_ROUTES
Hanya mengembalikan rute yang dimiliki klien.
 
Terus-menerus Makna
RTM_ENUM_NEXT
Hitung rute mulai dari alamat/panjang masker yang ditentukan (seperti 10/8). Enumerasi berlanjut ke akhir tabel perutean.
RTM_ENUM_RANGE
Hitung rute dalam rentang yang ditentukan oleh panjang alamat/masker (seperti 10/8).
RTM_ENUM_START
Menghitung rute mulai dari 0/0. Tentukan NULL untuk NetAddress.

[in] StartDest

Arahkan ke struktur RTM_NET_ADDRESS yang berisi alamat awal enumerasi. Parameter ini diabaikan jika EnumFlags berisi RTM_ENUM_START.

[in] MatchingFlags

Menentukan elemen rute yang akan dicocokkan. Hanya rute yang cocok dengan kriteria yang ditentukan dalam CriteriaRoute dan CriteriaInterface yang dikembalikan, kecuali dinyatakan lain. Bendera berikut digunakan.

Terus-menerus Makna
RTM_MATCH_FULL
Cocokkan rute dengan semua kriteria.
RTM_MATCH_INTERFACE
Cocokkan rute yang berada pada antarmuka yang sama. Klien dapat menentukan NULL untuk CriteriaRoute.
RTM_MATCH_NEIGHBOUR
Cocokkan rute dengan tetangga yang sama.
RTM_MATCH_NEXTHOP
Cocokkan rute yang memiliki hop berikutnya yang sama.
RTM_MATCH_NONE
Cocokkan tidak ada kriteria; semua rute untuk tujuan dikembalikan. Parameter CriteriaRoute diabaikan jika bendera ini diatur.
RTM_MATCH_OWNER
Cocokkan rute dengan pemilik yang sama.
RTM_MATCH_PREF
Cocokkan rute yang memiliki preferensi yang sama.

[in] CriteriaRoute

Menentukan rute mana yang akan dijumlahkan. Parameter ini bersifat opsional dan dapat diatur ke NULL jika MatchingFlags berisi RTM_MATCH_INTERFACE atau RTM_MATCH_NONE.

[in] CriteriaInterface

Penunjuk ke ULONG yang menentukan rute antarmuka mana yang harus ditempatkan. Parameter ini diabaikan kecuali MatchingFlags berisi RTM_MATCH_INTERFACE.

[out] RtmEnumHandle

Pada input, RtmEnumHandle adalah penunjuk ke NULL.

Pada output, RtmEnumHandle menerima pointer ke handel ke enumerasi. Gunakan handel ini di semua panggilan berikutnya ke RtmGetEnumRoutes, RtmReleaseRoutes, dan RtmDeleteEnumHandle.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan NO_ERROR.

Jika fungsi gagal, nilai yang dikembalikan adalah salah satu kode kesalahan berikut.

Nilai Makna
ERROR_INVALID_PARAMETER
Parameter berisi informasi yang salah.
ERROR_NOT_ENOUGH_MEMORY
Memori tidak cukup untuk menyelesaikan operasi ini.
ERROR_NOT_SUPPORTED
Satu atau beberapa tampilan yang ditentukan tidak didukung.
 
 

Keterangan

Jika EnumFlags berisi RTM_ENUM_RANGE, gunakan NetAddress untuk menentukan rentang tabel perutean yang akan dihitung. Misalnya, jika klien menetapkan NetAddress ke 10/8, tujuan dalam rentang 10.0.0.0/8 ke 10.255.255.255/32 dikembalikan.

Ketika handel enumerasi tidak lagi diperlukan, lepaskan dengan memanggil RtmDeleteEnumHandle.

Untuk kode sampel menggunakan fungsi ini, lihat Menghitung Semua Rute.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tidak ada yang didukung
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header rtmv2.h
Pustaka Rtm.lib
DLL Rtm.dll

Lihat juga

RTM_NET_ADDRESS

RTM_ROUTE_INFO

RtmDeleteEnumHandle

RtmGetEnumRoutes

RtmReleaseRoutes