다음을 통해 공유


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

잘못된 매개 변수가 함수에 전달되었습니다. 이 오류는 NULL 포인터가 DestinationAddress, BestSourceAddress또는 BestRoute 매개 변수에 전달되거나 경우 반환됩니다. 이 오류는 InterfaceLuidInterfaceIndex 매개 변수가 모두 지정되지 않은 경우에도 반환됩니다. 이 오류는 DestinationAddress 매개 변수가 IPv4 또는 IPv6 주소 및 패밀리를 지정하지 않는 경우에도 반환됩니다.

STATUS_NOT_FOUND

지정된 인터페이스를 찾을 수 없습니다. 이 오류는 InterfaceLuid 또는 InterfaceIndex 매개 변수가 지정한 네트워크 인터페이스를 찾을 수 없는 경우 반환됩니다.

STATUS_NOT_SUPPORTED

요청이 지원되지 않습니다. 이 오류는 로컬 컴퓨터에 IPv4 스택이 없고 IPv4 주소 및 패밀리가 DestinationAddress 매개 변수에 지정되었거나 로컬 컴퓨터에 IPv6 스택이 없고 DestinationAddress 매개 변수에 IPv4 주소 및 패밀리가 지정된 경우 반환됩니다.

기타

FormatMessage 함수를 사용하여 반환된 오류에 대한 메시지 문자열을 가져옵니다.

발언

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

입력 시 드라이버는 다음 매개 변수를 초기화해야 합니다.

  • destinationAddress
    유효한 IPv4 또는 IPv6 주소 및 패밀리로 설정합니다.

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

또한 입력 시 드라이버는 SourceAddress 매개 변수를 기본 IPv4 또는 IPv6 주소 및 패밀리로 초기화할 수 있습니다.

출력에서 호출이 성공하면 GetBestRoute2 원본 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