다음을 통해 공유


GetBestRoute2 함수(netioapi.h)

GetBestRoute2 함수는 지정된 대상 IP 주소에 대한 최상의 경로를 위해 로컬 컴퓨터에서 IP 경로 항목을 검색합니다.

구문

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetBestRoute2(
  [in, optional] NET_LUID            *InterfaceLuid,
  [in]           NET_IFINDEX         InterfaceIndex,
  [in]           const SOCKADDR_INET *SourceAddress,
  [in]           const SOCKADDR_INET *DestinationAddress,
  [in]           ULONG               AddressSortOptions,
  [out]          PMIB_IPFORWARD_ROW2 BestRoute,
  [out]          SOCKADDR_INET       *BestSourceAddress
);

매개 변수

[in, optional] InterfaceLuid

IP 경로 항목과 연결된 네트워크 인터페이스를 지정하는 LUID(로컬 고유 식별자)입니다.

[in] InterfaceIndex

IP 경로 항목과 연결된 네트워크 인터페이스를 지정하는 로컬 인덱스 값입니다. 이 인덱스 값은 네트워크 어댑터를 사용하지 않도록 설정한 다음 사용하도록 설정하거나 다른 상황에서 변경될 수 있으며 영구로 간주해서는 안 됩니다.

[in] SourceAddress

원본 IP 주소입니다. 이 매개 변수를 생략하고 NULL 포인터로 전달할 수 있습니다.

[in] DestinationAddress

대상 IP 주소입니다.

[in] AddressSortOptions

IP 주소 정렬 방식에 영향을 주는 옵션 집합입니다. 이 매개 변수는 현재 사용되지 않습니다.

[out] BestRoute

원본 IP 주소에서 대상 IP 주소로의 최상의 경로에 대한 MIB_IPFORWARD_ROW2 대한 포인터입니다.

[out] BestSourceAddress

최상의 원본 IP 주소에 대한 포인터입니다.

반환 값

함수가 성공하면 반환 값이 NO_ERROR.

함수가 실패하면 반환 값은 다음 오류 코드 중 하나입니다.

반환 코드 설명
ERROR_INVALID_PARAMETER
잘못된 매개 변수가 함수에 전달되었습니다. DestinationAddress, BestSourceAddress 또는 BestRoute 매개 변수에 NULL 포인터가 전달되면 이 오류가 반환됩니다. DestinationAddress 매개 변수가 IPv4 또는 IPv6 주소 및 패밀리를 지정하지 않는 경우에도 이 오류가 반환됩니다.
ERROR_FILE_NOT_FOUND
지정된 인터페이스를 찾을 수 없습니다. InterfaceLuid 또는 InterfaceIndex 매개 변수로 지정된 네트워크 인터페이스를 찾을 수 없는 경우 이 오류가 반환됩니다.
ERROR_NOT_SUPPORTED
요청이 지원되지 않습니다. 이 오류는 로컬 컴퓨터에 IPv4 스택이 없고 DestinationAddress 매개 변수에 IPv4 주소와 패밀리를 지정한 경우 반환됩니다. 이 오류는 로컬 컴퓨터에 IPv6 스택이 없고 DestinationAddress 매개 변수에 IPv6 주소 및 패밀리가 지정된 경우에도 반환됩니다.
기타
FormatMessage를 사용하여 반환된 오류에 대한 메시지 문자열을 가져옵니다.

설명

GetBestRoute2 함수는 Windows Vista 이상에서 정의됩니다.

GetBestRoute2 함수는 원본 IP 주소에서 대상 IP 주소로의 최상의 경로에 대한 MIB_IPFORWARD_ROW2 구조 항목을 검색하는 데 사용됩니다.

입력 시 DestinationAddress 매개 변수를 유효한 IPv4 또는 IPv6 주소 및 패밀리로 초기화해야 합니다. 입력 시 SourceAddress 매개 변수는 기본 설정 IPv4 또는 IPv6 주소 및 패밀리로 초기화될 수 있습니다. 또한 InterfaceLuid 또는 InterfaceIndex 매개 변수 중 하나 이상을 초기화해야 합니다.

매개 변수는 위에 나열된 순서대로 사용됩니다. 따라서 InterfaceLuid 가 지정된 경우 이 멤버를 사용하여 인터페이스를 확인합니다. InterfaceLuid 멤버에 대해 값이 설정되지 않은 경우(이 멤버의 값이 0으로 설정됨) InterfaceIndex 멤버를 사용하여 인터페이스를 확인합니다.

호출이 성공하면 출력에서 GetBestRoute2 는 원본 IP 주소의 대상 IP 주소에서 최상의 경로에 대한 구조를 검색하고 MIB_IPFORWARD_ROW2 .

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 netioapi.h(Iphlpapi.h 포함)
라이브러리 Iphlpapi.lib
DLL Iphlpapi.dll

추가 정보

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2

SetIpForwardEntry2