Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
GetBestRoute2 işlevi, belirtilen hedef IP adresine en iyi yol için yerel bilgisayardaki IP yolu girdisini alır.
Sözdizimi
NETIOAPI_API GetBestRoute2(
_In_opt_ NET_LUID *InterfaceLuid,
_In_ NET_IFINDEX InterfaceIndex,
_In_opt_ const SOCKADDR_INET *SourceAddress,
_In_ const SOCKADDR_INET *DestinationAddress,
_In_ ULONG AddressSortOptions,
_Out_ PMIB_IPFORWARD_ROW2 BestRoute,
_Out_ SOCKADDR_INET *BestSourceAddress
);
Parametre
InterfaceLuid [in, isteğe bağlı]
Bir IP yolu girişiyle ilişkili ağ arabirimini belirtmek için yerel olarak benzersiz tanımlayıcı (LUID).InterfaceIndex [in]
Bir IP yolu girişiyle ilişkili ağ arabirimini belirtmek için yerel dizin değeri. Bir ağ bağdaştırıcısı devre dışı bırakılıp etkinleştirildiğinde veya başka koşullar altında bu dizin değeri değişebilir, bu nedenle bu değer kalıcı olmaz.sourceaddress [in, optional]
Kaynak IP adresi. Sürücünüz bu parametreyi atlayabilir ve NULL işaretçisi geçirebilir.DestinationAddress [in]
Hedef IP adresi.AddressSortOptions [in]
IP adreslerinin sıralanma şeklini etkileyen bir dizi seçenek. Bu parametre şu anda kullanılmıyor.BestRoute [out]
Kaynak IP adresinden hedef IP adresine en iyi yol için MIB_IPFORWARD_ROW2 yapısının işaretçisi.BestSourceAddress [out]
En iyi kaynak IP adresine yönelik bir işaretçi.
Dönüş değeri
getbestroute2 işlevin başarılı olması durumunda STATUS_SUCCESS döndürür.
İşlev başarısız olursa GetBestRoute2 aşağıdaki hata kodlarından birini döndürür:
| İade kodu | Açıklama |
|---|---|
| STATUS_INVALID_PARAMETER | İşleve geçersiz bir parametre geçirildi. DestinationAddress, BestSourceAddressveya BestRoute parametrelerinde NULL işaretçisi geçirilirse bu hata döndürülür. InterfaceLuid ve InterfaceIndex parametreleri belirtilmemişse de bu hata döndürülür. DestinationAddress parametresi bir IPv4 veya IPv6 adresi ve ailesi belirtmiyorsa da bu hata döndürülür |
| STATUS_NOT_FOUND | Belirtilen arabirim bulunamadı. InterfaceLuid veya InterfaceIndex parametresinin belirttiği ağ arabirimi bulunamazsa bu hata döndürülür. |
| STATUS_NOT_SUPPORTED | İstek desteklenmiyor. Yerel bilgisayarda IPv4 yığını yoksa ve DestinationAddress parametresinde bir IPv4 adresi ve ailesi belirtildiyse veya yerel bilgisayarda IPv6 yığını yoksa ve DestinationAddress parametresinde bir IPv4 adresi ve ailesi belirtildiyse bu hata döndürülür. |
| Diğer | Döndürülen hatanın ileti dizesini almak için FormatMessage işlevini kullanın. |
Açıklamalar
GetBestRoute2 işlevi, kaynak IP adresinden hedef IP adresine en iyi yol için MIB_IPFORWARD_ROW2 yapı girişi almak için kullanılır.
Girişte, sürücünüz aşağıdaki parametreleri başlatmalıdır.
DestinationAddress
Geçerli bir IPv4 veya IPv6 adresi ve ailesi olarak ayarlayın.InterfaceLuid veya InterfaceIndex
Bu parametreler daha önce listelenen sırayla kullanılır. Bu nedenle InterfaceLuid belirtilirse, arabirimi belirlemek için bu parametre kullanılır. InterfaceLuid üyesi için hiçbir değer ayarlanmadıysa (bu parametrenin değeri sıfır olarak ayarlandı), arabirimi belirlemek için InterfaceIndex parametresi kullanılır.
Ayrıca, girişte, sürücünüz tercih edilen IPv4 veya IPv6 adresi ve ailesi için sourceAddress parametresini başlatabilir.
Çıktıda, çağrı başarılı olduğunda GetBestRoute2 hedef IP adresinden en iyi yol için bir MIB_IPFORWARD_ROW2 yapısı alır.
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 |