Aracılığıyla paylaş


NotifyIpInterfaceChange işlevi

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

Sözdizimi

NETIOAPI_API NotifyIpInterfaceChange(
  _In_    ADDRESS_FAMILY               Family,
  _In_    PIPINTERFACE_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, bu işlev sürücüyü yalnızca IPv4 değişiklik bildirimleri için bilgilendirilecek şekilde kaydeder.

    • AF_INET6
      IPv6 adres ailesi. Bu değer belirtildiğinde, bu işlev sürücüyü yalnızca IPv6 değişiklik bildirimleri için kaydeder.

    • AF_UNSPEC
      Adres ailesi belirtilmemiş. Bu değer belirtildiğinde, bu işlev hem IPv4 hem de IPv6 değişiklikleri için bildirim almak üzere 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, arabirim 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 kaydı tamamlandıktan hemen sonra geri çağırmanın çağrılıp çağrılmayacağını gösteren bir değer. Bu ilk bildirim, BIR IP arabiriminde değişiklik olduğunu göstermez. Bu parametrenin amacı, geri çağırmanın kaydedildiğini onaylayan bir onay sağlamaktır.

  • NotificationHandle [in, out]
    Değişiklik bildiriminin kaydını kaldırmak için daha sonra kullanılabilecek bir tanıtıcı döndürmek için kullanılan 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

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

İşlev başarısız olursa NotifyIpInterfaceChange 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 NotifyIpInterfaceChange işlevine geçirilen CallerContext parametresi.

IN PMIB_IPINTERFACE_ROW Row OPTIONAL

Değiştirilen arabirimin MIB_IPINTERFACE_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 NotifyIpInterfaceChange 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 NotifyIpInterfaceChange 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

GetIfEntry2

GetIfStackTable

GetIfTable2

GetInvertedIfStackTable

GetIpInterfaceEntry

InitializeIpInterfaceEntry

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_NOTIFICATION_TYPE

SetIpInterfaceEntry