다음을 통해 공유


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 포인터가 전달되면 반환됩니다. InterfaceLuidInterfaceIndex 매개 변수가 모두 지정되지 않은 경우에도 이 오류가 반환됩니다. 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

추가 정보

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2

SetIpForwardEntry2