Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcja GetBestRoute2 pobiera wpis trasy IP na komputerze lokalnym w celu uzyskania najlepszej trasy do określonego docelowego adresu IP.
Składnia
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
);
Parametry
InterfaceLuid [in, opcjonalnie]
Unikatowy identyfikator lokalnie (LUID) określający interfejs sieciowy skojarzony z wpisem trasy IP.InterfaceIndex [in]
Wartość indeksu lokalnego określająca interfejs sieciowy skojarzony z wpisem trasy IP. Ta wartość indeksu może ulec zmianie, gdy karta sieciowa jest wyłączona, a następnie włączona lub w innych okolicznościach, więc ta wartość nie jest trwała.SourceAddress [in, opcjonalnie]
Źródłowy adres IP. Sterownik może pominąć ten parametr i przekazać wskaźnik null.DestinationAddress [in]
Docelowy adres IP.AddressSortOptions [in]
Zestaw opcji wpływających na sposób sortowania adresów IP. Ten parametr nie jest obecnie używany.bestRoute [out]
Wskaźnik do struktury MIB_IPFORWARD_ROW2 dla najlepszej trasy ze źródłowego adresu IP do docelowego adresu IP.BestSourceAddress [out]
Wskaźnik do najlepszego źródłowego adresu IP.
Wartość zwracana
getBestRoute2 zwraca STATUS_SUCCESS, jeśli funkcja powiedzie się.
Jeśli funkcja nie powiedzie się, getBestRoute2 zwraca jeden z następujących kodów błędów:
| Kod powrotny | Opis |
|---|---|
| STATUS_INVALID_PARAMETER | Do funkcji przekazano nieprawidłowy parametr. Ten błąd jest zwracany, jeśli wskaźnik o wartości null jest przekazywany w parametrach DestinationAddress, BestSourceAddresslub parametrów BestRoute. Ten błąd jest również zwracany, jeśli parametry InterfaceLuid i InterfaceIndex nie zostały określone. Ten błąd jest również zwracany, jeśli parametr DestinationAddress nie określa adresu IPv4 lub IPv6 i rodziny |
| STATUS_NOT_FOUND | Nie można odnaleźć określonego interfejsu. Ten błąd jest zwracany, jeśli nie można odnaleźć interfejsu sieciowego InterfaceLuid lub InterfaceIndex parametru. |
| STATUS_NOT_SUPPORTED | Żądanie nie jest obsługiwane. Ten błąd jest zwracany, jeśli żaden stos IPv4 nie znajduje się na komputerze lokalnym, a adres IPv4 i rodzina została określona w parametrze DestinationAddress lub jeśli żaden stos IPv6 nie znajduje się na komputerze lokalnym, a adres IPv4 i rodzina została określona w parametrze DestinationAddress. |
| inne | Użyj funkcji FormatMessage, aby uzyskać ciąg komunikatu dla zwróconego błędu. |
Uwagi
Funkcja GetBestRoute2 służy do pobierania wpisu struktury MIB_IPFORWARD_ROW2 dla najlepszej trasy ze źródłowego adresu IP do docelowego adresu IP.
W danych wejściowych sterownik musi zainicjować następujące parametry.
DestinationAddress
Ustaw prawidłowy adres IPv4 lub IPv6 i rodzinę.InterfaceLuid lub InterfaceIndex
Te parametry są używane w kolejności wymienionej wcześniej. Dlatego jeśli określono InterfaceLuid, ten parametr jest używany do określania interfejsu. Jeśli dla elementu członkowskiego InterfaceLuid nie ustawiono żadnej wartości (wartość tego parametru została ustawiona na zero), parametr InterfaceIndex zostanie użyty do określenia interfejsu.
Ponadto na danych wejściowych sterownik może zainicjować parametr SourceAddress do preferowanego adresu IPv4 lub IPv6 i rodziny.
Po pomyślnym wywołaniu GetBestRoute2 pobiera strukturę MIB_IPFORWARD_ROW2 dla najlepszej trasy ze źródłowego adresu IP docelowego adresu IP.
Wymagania
Platforma docelowa |
universal |
Wersja |
Dostępne w systemie Windows Vista i nowszych wersjach systemów operacyjnych Windows. |
Nagłówek |
Netioapi.h (include Netioapi.h) |
Biblioteka |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |