Aracılığıyla paylaş


NotifyRouteChange2 işlevi

NotifyRouteChange2 işlevi, yerel bilgisayardaki IP yolu girişlerinde yapılan değişiklikler için bildirim almak üzere sürücüyü kaydeder.

Sözdizimi

NETIOAPI_API NotifyRouteChange2(
  _In_    ADDRESS_FAMILY             Family,
  _In_    PIPFORWARD_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 yol değişikliği bildirimleri için kaydeder.

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

    • AF_UNSPEC
      Adres ailesi belirtilmemiş. Bu değer belirtildiğinde, bu işlev hem IPv4 hem de IPv6 yol değişikliği 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, 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, IP yolunda bir 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]
    Başlatılabilir MIB_IPINTERFACE_ROW yapısının işaretçisi. Başarılı dönüşte, bu yapıdaki üyeler yerel bilgisayardaki bir arabirim için varsayılan bilgilerle başlatılır.

Dönüş değeri

NotifyRouteChange2 işlevin başarılı olması durumunda STATUS_SUCCESS döndürür.

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

IN PMIB_IPFORWARD_ROW2 Row OPTIONAL

Değiştirilen IP yolu girişi için MIB_IPFORWARD_ROW2 girdisine yönelik bir işaretçi. Geri çağırma işlevine NotificationType parametresinde geçirilen MIB_NOTIFICATION_TYPE değeri MibInitialNotification olarak ayarlandığında bu parametre NULL işaretçisidir. Bu durum, yalnızca NotifyRouteChange2 geçirilen InitialNotification parametresi, sürücüyü değişiklik bildirimleri için 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, NotifyRouteChange2 döndüren NotificationHandle parametresi ni geçirerek CancelMibChangeNotify2 işlevini çağırın.

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

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_NOTIFICATION_TYPE

SetIpForwardEntry2