Bagikan melalui


Fungsi NotifyTeredoPortChange (netioapi.h)

Fungsi NotifyTeredoPortChange mendaftar untuk diberi tahu tentang perubahan pada nomor port UDP yang digunakan oleh klien Teredo untuk port layanan Teredo di komputer lokal.

Sintaks

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API NotifyTeredoPortChange(
  [in]      PTEREDO_PORT_CHANGE_CALLBACK Callback,
  [in]      PVOID                        CallerContext,
  [in]      BOOLEAN                      InitialNotification,
  [in, out] HANDLE                       *NotificationHandle
);

Parameter

[in] Callback

Penunjuk ke fungsi untuk dipanggil ketika perubahan port klien Teredo terjadi. Fungsi ini akan dipanggil ketika pemberitahuan perubahan port Teredo diterima.

[in] CallerContext

Konteks pengguna diteruskan ke fungsi panggilan balik yang ditentukan dalam parameter Panggilan Balik saat pemberitahuan perubahan port Teredo diterima.

[in] InitialNotification

Nilai yang menunjukkan apakah panggilan balik harus dipanggil segera setelah pendaftaran untuk pemberitahuan perubahan selesai. Pemberitahuan awal ini tidak menunjukkan perubahan yang terjadi pada port klien Teredo. Tujuan parameter ini untuk memberikan konfirmasi bahwa panggilan balik terdaftar.

[in, out] NotificationHandle

Penunjuk yang digunakan untuk mengembalikan handel yang nantinya dapat digunakan untuk membatalkan pendaftaran pemberitahuan perubahan. Jika berhasil, handel pemberitahuan dikembalikan dalam parameter ini. Jika terjadi kesalahan, NULL dikembalikan.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan NO_ERROR.

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

Menampilkan kode Deskripsi
ERROR_INVALID_HANDLE
Terjadi kesalahan internal di mana handel tidak valid ditemukan.
ERROR_INVALID_PARAMETER
Parameter yang tidak valid diteruskan ke fungsi. Kesalahan ini dikembalikan jika parameter Panggilan Balik adalah penunjuk NULL .
ERROR_NOT_ENOUGH_MEMORY
Memori tidak cukup.
Lainnya
Gunakan FormatMessage untuk mendapatkan string pesan untuk kesalahan yang dikembalikan.

Keterangan

Fungsi NotifyTeredoPortChange ditentukan pada Windows Vista dan yang lebih baru.

Fungsi GetTeredoPort dapat digunakan untuk mengambil nomor port UDP awal yang digunakan oleh klien Teredo untuk port layanan Teredo.

Port Teredo bersifat dinamis dan dapat berubah kapan saja klien Teredo dimulai ulang di komputer lokal. Aplikasi dapat mendaftar untuk diberi tahu ketika port layanan Teredo berubah dengan memanggil fungsi NotifyTeredoPortChange .

Pemanggilan fungsi panggilan balik yang ditentukan dalam parameter Panggilan Balik diserialisasikan. Fungsi panggilan balik harus didefinisikan sebagai fungsi jenis VOID. Parameter yang diteruskan ke fungsi panggilan balik meliputi yang berikut:

Parameter Deskripsi
IN PVOID CallerContext Parameter CallerContext diteruskan ke fungsi NotifyTeredoPortChange saat mendaftar untuk pemberitahuan.
DI Port USHORT Nomor port UDP saat ini digunakan oleh klien Teredo. Parameter ini nol ketika nilai MIB_NOTIFICATION_TYPE yang diteruskan dalam parameter NotificationType ke fungsi panggilan balik diatur ke MibInitialNotification. Ini hanya dapat terjadi jika parameter InitialNotification yang diteruskan ke NotifyTeredoPortChange diatur ke TRUE saat mendaftar untuk pemberitahuan.
IN MIB_NOTIFICATION_TYPE NotificationType Jenis pemberitahuan. Anggota ini dapat menjadi salah satu nilai dari jenis enumerasi MIB_NOTIFICATION_TYPE yang ditentukan dalam file header Netioapi.h .
 

Fungsi panggilan balik yang ditentukan dalam parameter Callback harus diimplementasikan dalam proses yang sama dengan aplikasi yang memanggil fungsi NotifyTeredoPortChange . Jika fungsi panggilan balik berada dalam DLL terpisah, maka DLL harus dimuat sebelum memanggil fungsi NotifyTeredoPortChange untuk mendaftar pemberitahuan perubahan.

Setelah fungsi NotifyTeredoPortChange dipanggil untuk mendaftar pemberitahuan perubahan, pemberitahuan ini akan terus dikirim sampai aplikasi membatalkan pendaftaran pemberitahuan perubahan atau aplikasi berakhir. Jika aplikasi berakhir, sistem akan secara otomatis membatalkan pendaftaran apa pun untuk pemberitahuan perubahan. Masih disarankan agar aplikasi secara eksplisit membatalkan pendaftaran untuk pemberitahuan perubahan sebelum berakhir.

Pendaftaran apa pun untuk pemberitahuan perubahan tidak bertahan di seluruh sistem yang dimatikan atau di-boot ulang.

Untuk membatalkan pendaftaran pemberitahuan perubahan, panggil fungsi CancelMibChangeNotify2 yang melewati parameter NotificationHandle yang dikembalikan oleh NotifyTeredoPortChange.

Aplikasi tidak dapat melakukan panggilan ke fungsi CancelMibChangeNotify2 dari konteks utas yang saat ini menjalankan fungsi panggilan balik pemberitahuan untuk parameter NotificationHandle yang sama. Jika tidak, utas yang menjalankan panggilan balik tersebut akan mengakibatkan kebuntuan. Jadi fungsi CancelMibChangeNotify2 tidak boleh dipanggil langsung sebagai bagian dari rutinitas panggilan balik pemberitahuan. Dalam situasi yang lebih umum, utas yang menjalankan fungsi CancelMibChangeNotify2 tidak dapat memiliki sumber daya tempat utas yang menjalankan operasi panggilan balik pemberitahuan akan menunggu karena akan mengakibatkan kebuntuan serupa. Fungsi CancelMibChangeNotify2 harus dipanggil dari utas yang berbeda, tempat utas yang menerima panggilan balik pemberitahuan tidak memiliki dependensi.

Klien Teredo juga menggunakan port UDP statis 3544 untuk mendengarkan lalu lintas multicast yang dikirim pada alamat IPv4 multicast 224.0.0.253 seperti yang ditentukan dalam RFC 4380. Untuk informasi selengkapnya, lihat http://www.ietf.org/rfc/rfc4380.txt.

Fungsi NotifyTeredoPortChange digunakan terutama oleh aplikasi firewall untuk mengonfigurasi pengecualian yang sesuai untuk memungkinkan lalu lintas Teredo masuk dan keluar.

Fungsi NotifyStableUnicastIpAddressTable digunakan terutama oleh aplikasi yang menggunakan klien Teredo.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header netioapi.h (termasuk Iphlpapi.h)
Pustaka Iphlpapi.lib
DLL Iphlpapi.dll

Lihat juga

CancelMibChangeNotify2

GetTeredoPort

NotifyStableUnicastIpAddressTable