Aracılığıyla paylaş


NotifyUnicastIpAddressChange işlevi

NotifyUnicastIpAddressChange işlevi, yerel bilgisayardaki tüm tek noktaya yayın IP arabirimlerinde, tek noktaya yayın IPv4 adreslerinde veya tek noktaya yayın IPv6 adreslerinde yapılan değişiklikler için bildirim almak üzere sürücüyü kaydeder.

Sözdizimi

NETIOAPI_API NotifyUnicastIpAddressChange(
  _In_    ADDRESS_FAMILY                     Family,
  _In_    PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback,
  _In_    PVOID                              CallerContext,
  _In_    BOOLEAN                            InitialNotification,
  _Inout_ HANDLE                             *NotificationHandle
);

Parametre

  • Aile [in]
    Değişiklik bildirimleri için sürücüyü kaydedecek adres ailesi.

    Adres ailesi için olası değerler Winsock2.h üst bilgi dosyasında listelenir. AF_ adres ailesi ve PF_ protokol ailesi sabitlerinin değerlerinin aynı olduğunu unutmayın (örneğin, AF_INET ve PF_INET), böylece sabitlerden birini kullanabilirsiniz.

    Windows Vista ve Windows işletim sistemlerinin sonraki sürümlerinde, Family parametresinin olası değerleri Ws2def.h üst bilgi dosyasında tanımlanır. Ws2def.h üst bilgi dosyasının Netioapi.h dosyasına otomatik olarak eklendiğini ve Ws2def.h dosyasını hiçbir zaman doğrudan kullanmamalısınız.

    Şu anda adres ailesi için aşağıdaki değerler desteklenmektedir:

    • AF_INET
      IPv4 adres ailesi. Bu değer belirtildiğinde işlev sürücüyü yalnızca tek noktaya yayın IPv4 adres değişikliği bildirimleri için kaydeder.

    • AF_INET6
      IPv6 adres ailesi. Bu değer belirtildiğinde işlev sürücüyü yalnızca tek noktaya yayın IPv6 adres değişikliği bildirimleri için kaydeder.

    • AF_UNSPEC
      Adres ailesi belirtilmemiş. Bu değer belirtildiğinde işlev, hem tek noktaya yayın IPv4 hem de IPv6 adresi değişiklik bildirimleri için sürücüyü kaydeder.

  • Geri Çağırma [in]
    Bir değişiklik gerçekleştiğinde çağrılacak işlev işaretçisi. Bu işlev, tek noktaya yayın IP adresi bildirimi alındığında çağrılır.

  • CallerContext [in]
    Arabirim bildirimi alındığında Geri Çağırma parametresinde belirtilen geri çağırma işlevine geçirilen kullanıcı bağlamı.

  • InitialNotification [in]
    Değişiklik bildirimi için kayıt tamamlandıktan hemen sonra geri çağırmanın çağrılıp çağrılmayacağını gösteren bir değer. Bu ilk bildirim, tek noktaya yayın IP adresinde bir değişiklik olduğunu göstermez. Bu parametre geri çağırmanın kaydedildiğini onaylar.

  • NotificationHandle [in, out]
    Sürücünüzün daha sonra sürücü değişikliği bildiriminin kaydını kaldırmak için kullanabileceği bir tanıtıcı döndürmek için kullanılan bir işaretçi. Başarılı olduğunda, bu parametrede bir bildirim tanıtıcısı döndürülür. Hata oluşursa NULL döndürülür.

Dönüş değeri

NotifyUnicastIpAddressChange işlevi başarılı olursa STATUS_SUCCESS döndürür.

İşlev başarısız olursa NotifyUnicastIpAddressChange aşağıdaki hata kodlarından birini döndürür:

İade kodu Açıklama
ERROR_INVALID_HANDLE

Geçersiz tanıtıcıyla karşılaşıldığında bir iç hata oluştu.

STATUS_INVALID_PARAMETER

İşleve geçersiz bir parametre geçirildi. Family parametresi AF_INET, AF_INET6 veya AF_UNSPEC değilse bu hata döndürülür.

STATUS_NOT_ENOUGH_MEMORY

Bellek yetersizdi.

Diğer

Döndürülen hatanın ileti dizesini almak için FormatMessage işlevini kullanın.

Açıklamalar

Sürücünüz Family parametresini AF_INET, AF_INET6 veya AF_UNSPEC olarak ayarlamalıdır.

Geri Çağırma parametresinde belirtilen geri çağırma işlevinin çağrılması seri hale getirilir. Geri çağırma işlevi VOID türünde bir işlev olarak tanımlanmalıdır. Geri çağırma işlevine geçirilen parametreler aşağıdakileri içerir.

Parametre Açıklama

IN PVOID CallerContext

Sürücüyü değişiklik bildirimleri için kaydederken NotifyUnicastIpAddressChange işlevine geçirilen CallerContext parametresi.

IN PMIB_UNICASTIPADDRESS_ROW Row OPTIONAL

Değiştirilen tek noktaya yayın IP adresi için MIB_UNICASTIPADDRESS_ROW girdisine yönelik bir işaretçi. Geri çağırma işlevine NotificationType parametresinde geçirilen MIB_NOTIFICATION_TYPE değeri MibInitialNotificationolarak ayarlandığında bu parametre NULL işaretçisidir. Bu durum, yalnızca NotifyUnicastIpAddressChange geçirilen InitialNotification parametresi değişiklik bildirimleri için sürücüyü kaydederken TRUE olarak ayarlandıysa oluşabilir.

IN MIB_NOTIFICATION_TYPE NotificationType

Bildirim türü. Bu üye, MIB_NOTIFICATION_TYPE numaralandırma türündeki değerlerden biri olabilir.

Değişiklik bildirimlerinin sürücüsünün kaydını kaldırmak için CancelMibChangeNotify2 işlevini çağırın ve NotifyUnicastIpAddressChange NotificationHandle parametresini geçirin.

Gereksinim -leri

Hedef platform

Evrensel

Sürüm

Windows Vista ve Windows işletim sistemlerinin sonraki sürümlerinde kullanılabilir.

Üstbilgi

Netioapi.h (Netioapi.h içerir)

Kütüphane

Netio.lib

IRQL

< DISPATCH_LEVEL

Ayrıca bkz.

CancelMibChangeNotify2

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_NOTIFICATION_TYPE

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyStableUnicastIpAddressTable

SetUnicastIpAddressEntry