Bagikan melalui


Fungsi NotifyStableUnicastIpAddressTable

Fungsi NotifyStableUnicastIpAddressTable mengambil tabel alamat IP unicast yang stabil di komputer lokal.

Sintaks

NETIOAPI_API NotifyStableUnicastIpAddressTable(
  _In_    ADDRESS_FAMILY                           Family,
  _Out_   PMIB_UNICASTIPADDRESS_TABLE              *Table,
  _In_    PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback,
  _In_    PVOID                                    CallerContext,
  _Inout_ HANDLE                                   *NotificationHandle
);

Parameter

  • Keluarga [in]
    Keluarga alamat yang akan diambil.

    Nilai yang mungkin untuk keluarga alamat tercantum dalam file header Winsock2.h. Perhatikan bahwa nilai untuk keluarga alamat AF_ dan konstanta keluarga protokol PF_ identik (misalnya, AF_INET dan PF_INET), sehingga Anda dapat menggunakan salah satu konstanta.

    Pada Windows Vista dan versi yang lebih baru dari sistem operasi Windows, nilai yang mungkin untuk parameter Family didefinisikan dalam file header Ws2def.h. Perhatikan bahwa file header Ws2def.h secara otomatis disertakan dalam Netioapi.h dan Anda tidak boleh menggunakan Ws2def.h secara langsung.

    Nilai berikut saat ini didukung untuk keluarga alamat:

    • AF_INET
      Keluarga alamat IPv4. Ketika nilai ini ditentukan, fungsi mengambil tabel alamat IP unicast stabil yang hanya berisi entri IPv4.

    • AF_INET6
      Keluarga alamat IPv6. Ketika nilai ini ditentukan, fungsi mengambil tabel alamat IP unicast stabil yang hanya berisi entri IPv6.

    • AF_UNSPEC
      Keluarga alamat tidak ditentukan. Ketika nilai ini ditentukan, fungsi mengambil tabel alamat IP unicast stabil yang berisi entri IPv4 dan IPv6.

  • Tabel [keluar]
    Penunjuk ke struktur MIB_UNICASTIPADDRESS_TABLE . Ketika NotifyStableUnicastIpAddressTable berhasil, parameter ini mengembalikan tabel alamat IP unicast yang stabil di komputer lokal.

    Ketika NotifyStableUnicastIpAddressTable mengembalikan ERROR_IO_PENDING, yang menunjukkan bahwa permintaan I/O tertunda, tabel alamat IP unicast yang stabil dikembalikan ke fungsi dalam parameter CallerCallback .

  • CallerCallback [in]
    Penunjuk ke fungsi untuk memanggil dengan tabel alamat IP unicast yang stabil. Fungsi ini dipanggil jika NotifyStableUnicastIpAddressTable mengembalikan ERROR_IO_PENDING, yang menunjukkan bahwa permintaan I/O tertunda.

  • CallerContext [in]
    Konteks pengguna yang diteruskan ke fungsi panggilan balik yang ditentukan dalam parameter CallerCallback saat tabel alamat IP unicast stabil tersedia.

  • NotificationHandle [masuk, keluar]
    Pointer yang digunakan untuk mengembalikan handel yang dapat digunakan driver Anda untuk membatalkan permintaan untuk mengambil tabel alamat IP unicast yang stabil. Parameter ini dikembalikan jika nilai yang dikembalikan dari NotifyStableUnicastIpAddressTable ERROR_IO_PENDING, yang menunjukkan bahwa permintaan I/O tertunda.

Menampilkan nilai

NotifyStableUnicastIpAddressTable mengembalikan STATUS_SUCCESS dan tabel IP unicast yang stabil dikembalikan dalam parameter Tabel jika fungsi berhasil segera.

Jika permintaan I/O tertunda, fungsi mengembalikan ERROR_IO_PENDING dan fungsi yang ditunjuk parameter CallerCallback dipanggil ketika permintaan I/O telah selesai dengan tabel alamat IP unicast yang stabil.

Jika fungsi gagal, NotifyStableUnicastIpAddressTable mengembalikan salah satu kode kesalahan berikut:

Menampilkan kode Deskripsi
ERROR_INVALID_HANDLE

Terjadi kesalahan internal di mana handel tidak valid ditemukan.

STATUS_INVALID_PARAMETER

Parameter yang tidak valid diteruskan ke fungsi. Kesalahan ini dikembalikan jika parameter Tabel adalah penunjuk NULL , parameter NotificationHandle adalah penunjuk NULL , atau parameter Family tidak AF_INET, AF_INET6, atau AF_UNSPEC.

STATUS_NOT_ENOUGH_MEMORY

Memori tidak cukup.

Lainnya

Gunakan fungsi FormatMessage untuk mendapatkan string pesan untuk kesalahan yang dikembalikan.

Keterangan

Semua alamat IP unicast, kecuali alamat dial-on-demand, dianggap stabil hanya jika berada dalam status yang disukai. Untuk entri alamat IP unicast normal, status ini akan sesuai dengan anggota DadState dari MIB_UNICASTIPADDRESS_ROW untuk alamat IP yang diatur ke IpDadStatePreferred. Setiap alamat dial-on-demand mendefinisikan metrik stabilitasnya sendiri. Saat ini satu-satunya alamat dial-on-demand yang dipertimbangkan fungsi NotifyStableUnicastIpAddressTable adalah alamat IP unicast yang digunakan klien Teredo di komputer lokal.

Driver Anda harus mengatur parameter Family ke AF_INET, AF_INET6, atau AF_UNSPEC.

Ketika NotifyStableUnicastIpAddressTable berhasil dan mengembalikan STATUS_SUCCESS, parameter Tabel mengembalikan tabel alamat IP unicast yang stabil di komputer lokal.

Ketika NotifyStableUnicastIpAddressTable mengembalikan ERROR_IO_PENDING, yang menunjukkan bahwa permintaan I/O tertunda, tabel alamat IP unicast yang stabil dikembalikan ke fungsi dalam parameter CallerCallback .

Jika alamat IP unicast yang digunakan Teredo tersedia di komputer lokal tetapi tidak dalam status stabil (memenuhi syarat), NotifyStableUnicastIpAddressTable mengembalikan ERROR_IO_PENDING dan tabel alamat IP unicast stabil akhirnya dikembalikan dengan memanggil fungsi dalam parameter CallerCallback . Jika alamat Teredo tidak tersedia atau dalam status stabil dan alamat IP unicast lainnya dalam keadaan stabil, fungsi dalam parameter CallerCallback tidak pernah dipanggil.

Fungsi panggilan balik yang ditentukan dalam parameter CallerCallback harus didefinisikan sebagai fungsi jenis VOID. Parameter yang diteruskan ke fungsi panggilan balik mencakup yang berikut ini.

Parameter Deskripsi

DALAM PVOID CallerContext

Parameter CallerContext yang diteruskan ke fungsi NotifyStableUnicastIpAddressTable saat mendaftarkan driver untuk pemberitahuan.

DI PMIB_UNICASTIPADDRESS_TABLE AddressTable

Penunjuk ke struktur MIB_UNICASTIPADDRESS_TABLE yang berisi tabel alamat IP unicast stabil di komputer lokal.

Fungsi NotifyStableUnicastIpAddressTable digunakan terutama oleh driver yang menggunakan klien Teredo.

Untuk membatalkan pemberitahuan setelah panggilan balik selesai, panggil fungsi CancelMibChangeNotify2 , melewati parameter NotificationHandle yang dikembalikan NotifyStableUnicastIpAddressTable .

Persyaratan

Platform target

Universal

Versi

Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows.

Header

Netioapi.h (termasuk Netioapi.h)

Pustaka

Netio.lib

IRQL

< DISPATCH_LEVEL

Lihat juga

CancelMibChangeNotify2

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetTeredoPort

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_NOTIFICATION_TYPE

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyTeredoPortChange

NotifyUnicastIpAddressChange

SetUnicastIpAddressEntry