GetBestRoute2 함수
GetBestRoute2 함수는 지정된 대상 IP 주소에 대한 최상의 경로를 위해 로컬 컴퓨터에서 IP 경로 항목을 검색합니다.
구문
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
);
매개 변수
InterfaceLuid [in, optional]
IP 경로 항목과 연결된 네트워크 인터페이스를 지정하는 LUID(로컬 고유 식별자)입니다.InterfaceIndex [in]
IP 경로 항목과 연결된 네트워크 인터페이스를 지정하는 로컬 인덱스 값입니다. 이 인덱스 값은 네트워크 어댑터를 사용하지 않도록 설정한 다음 사용하도록 설정하거나 다른 상황에서 변경될 수 있으므로 이 값이 지속되지 않습니다.SourceAddress [in, optional]
원본 IP 주소입니다. 드라이버는 이 매개 변수를 생략하고 NULL 포인터를 전달할 수 있습니다.DestinationAddress [in]
대상 IP 주소입니다.AddressSortOptions [in]
IP 주소 정렬 방식에 영향을 주는 옵션 집합입니다. 이 매개 변수는 현재 사용되지 않습니다.BestRoute [out]
원본 IP 주소에서 대상 IP 주소로의 최상의 경로를 위한 MIB_IPFORWARD_ROW2 구조체에 대한 포인터입니다.BestSourceAddress [out]
최상의 원본 IP 주소에 대한 포인터입니다.
반환 값
GetBestRoute2 는 함수가 성공하면 STATUS_SUCCESS 반환합니다.
함수가 실패하면 GetBestRoute2 는 다음 오류 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
STATUS_INVALID_PARAMETER | 잘못된 매개 변수가 함수에 전달되었습니다. 이 오류는 DestinationAddress, BestSourceAddress 또는 BestRoute 매개 변수에 NULL 포인터가 전달되면 반환됩니다. InterfaceLuid 및 InterfaceIndex 매개 변수가 모두 지정되지 않은 경우에도 이 오류가 반환됩니다. DestinationAddress 매개 변수가 IPv4 또는 IPv6 주소 및 패밀리를 지정하지 않는 경우에도 이 오류가 반환됩니다. |
STATUS_NOT_FOUND | 지정된 인터페이스를 찾을 수 없습니다. InterfaceLuid 또는 InterfaceIndex 매개 변수가 지정한 네트워크 인터페이스를 찾을 수 없는 경우 이 오류가 반환됩니다. |
STATUS_NOT_SUPPORTED | 요청이 지원되지 않습니다. 이 오류는 로컬 컴퓨터에 IPv4 스택이 없고 DestinationAddress 매개 변수에 IPv4 주소 및 패밀리가 지정되었거나 로컬 컴퓨터에 IPv6 스택이 없고 DestinationAddress 매개 변수에 IPv4 주소와 패밀리가 지정된 경우 반환됩니다. |
기타 | FormatMessage 함수를 사용하여 반환된 오류에 대한 메시지 문자열을 가져옵니다. |
설명
GetBestRoute2 함수는 원본 IP 주소에서 대상 IP 주소로의 최상의 경로에 대한 MIB_IPFORWARD_ROW2 구조 항목을 검색하는 데 사용됩니다.
입력 시 드라이버는 다음 매개 변수를 초기화해야 합니다.
DestinationAddress
유효한 IPv4 또는 IPv6 주소 및 패밀리로 설정합니다.InterfaceLuid 또는 InterfaceIndex
이러한 매개 변수는 이전에 나열된 순서대로 사용됩니다. 따라서 InterfaceLuid 를 지정하면 이 매개 변수를 사용하여 인터페이스를 확인합니다. InterfaceLuid 멤버에 대해 값이 설정되지 않은 경우(이 매개 변수의 값이 0으로 설정된 경우) InterfaceIndex 매개 변수를 사용하여 인터페이스를 확인합니다.
또한 입력 시 드라이버는 SourceAddress 매개 변수를 기본 설정 IPv4 또는 IPv6 주소 및 패밀리로 초기화할 수 있습니다.
출력에서 호출이 성공하면 GetBestRoute2 는 원본 IP 주소의 대상 IP 주소에서 최상의 경로에 대한 MIB_IPFORWARD_ROW2 구조를 검색합니다.
요구 사항
대상 플랫폼 |
유니버설 |
버전 |
Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
헤더 |
Netioapi.h(Netioapi.h 포함) |
라이브러리 |
Netio.lib |
Irql |
< DISPATCH_LEVEL |