다음을 통해 공유


CreateIpForwardEntry2 함수(netioapi.h)

CreateIpForwardEntry2 함수는 로컬 컴퓨터에 새 IP 경로 항목을 만듭니다.

구문

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API CreateIpForwardEntry2(
  [in] const MIB_IPFORWARD_ROW2 *Row
);

매개 변수

[in] Row

IP 경로 항목에 대한 MIB_IPFORWARD_ROW2 구조 항목에 대한 포인터입니다.

반환 값

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

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

반환 코드 설명
ERROR_ACCESS_DENIED
액세스가 거부되었습니다. 이 오류는 사용자가 로컬 컴퓨터에서 필요한 관리 권한이 없거나 애플리케이션이 기본 제공 관리자(RunAs 관리자)로 향상된 셸에서 실행되고 있지 않음을 포함하는 여러 조건에서 반환됩니다.
ERROR_INVALID_PARAMETER
잘못된 매개 변수가 함수에 전달되었습니다. 이 오류는 NULL 포인터가 Row 매개 변수에 전달되거나, Row 매개 변수가 가리키는 MIB_IPFORWARD_ROW2DestinationPrefix 멤버를 지정하지 않았거나, Row 매개 변수가 가리키는 MIB_IPFORWARD_ROW2NextHop 멤버를 지정하지 않았거나, Row가 가리키는 MIB_IPFORWARD_ROW2InterfaceLuid 또는 InterfaceIndex 멤버를 모두 지정하지 않은 경우 반환됩니다. 매개 변수가 지정되지 않았습니다. 오류는 MIB_IPFORWARD_ROW2 지정된 PreferredLifetime 멤버가 ValidLifetime 멤버보다 크거나 MIB_IPFORWARD_ROW2SitePrefixLengthDestinationPrefix에 지정된 접두사 길이보다 큰 경우에도 반환됩니다.
ERROR_NOT_FOUND
지정된 인터페이스를 찾을 수 없습니다. 이 오류는 Row 매개 변수가 가리키는 MIB_IPNET_ROW2InterfaceLuid 또는 InterfaceIndex 멤버가 지정한 네트워크 인터페이스를 찾을 수 없는 경우 반환됩니다.
ERROR_NOT_SUPPORTED
요청이 지원되지 않습니다. 지정된 인터페이스가 경로를 지원하지 않는 경우 이 오류가 반환됩니다. 이 오류는 로컬 컴퓨터에 IPv4 스택이 없고 Row 매개 변수가 가리키는 MIB_IPFORWARD_ROW2DestinationPrefix 멤버의 주소 패밀리에 AF_INET 지정한 경우에도 반환됩니다. 이 오류는 로컬 컴퓨터에 IPv6 스택이 없고 DestinationPrefix 멤버의 주소 패밀리에 대해 AF_INET6 지정한 경우에도 반환됩니다.
ERROR_OBJECT_ALREADY_EXISTS
개체가 이미 있습니다. 이 오류는 Row 매개 변수가 가리키는 MIB_IPFORWARD_ROW2DestinationPrefix 멤버가 MIB_IPFORWARD_ROW2 InterfaceLuid 또는 InterfaceIndex 멤버로 지정된 인터페이스의 기존 IP 경로 항목과 중복된 경우 반환됩니다.
기타
FormatMessage를 사용하여 반환된 오류에 대한 메시지 문자열을 가져옵니다.

설명

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

CreateIpForwardEntry2 함수는 로컬 컴퓨터에 새 인접 IP 주소 항목을 추가하는 데 사용됩니다. InitializeIpForwardEntry 함수를 사용하여 기본값으로 MIB_IPFORWARD_ROW2 구조체 항목의 멤버를 초기화해야 합니다. 그런 다음 애플리케이션은 수정하려는 MIB_IPFORWARD_ROW2 항목의 멤버를 변경한 다음 CreateIpForwardEntry2 함수를 호출할 수 있습니다.

Row 매개 변수가 가리키는 MIB_IPFORWARD_ROW2 구조의 DestinationPrefix 멤버를 유효한 IPv4 또는 IPv6 주소 접두사로 초기화해야 합니다. Row 매개 변수가 가리키는 MIB_IPFORWARD_ROW2 구조체의 NextHop 멤버를 유효한 IPv4 또는 IPv6 주소 및 패밀리로 초기화해야 합니다. 또한 Row 매개 변수를 가리키는 MIB_IPFORWARD_ROW2 구조체의 다음 멤버 중 하나 이상을 InterfaceLuid 또는 InterfaceIndex 인터페이스로 초기화해야 합니다.

필드는 위에 나열된 순서대로 사용됩니다. 따라서 InterfaceLuid 를 지정하면 이 멤버를 사용하여 IP 경로 항목을 추가할 인터페이스를 결정합니다. InterfaceLuid 멤버에 대해 값이 설정되지 않은 경우(이 멤버의 값이 0으로 설정된 경우) InterfaceIndex 멤버가 인터페이스를 결정하는 데 사용됩니다.

Row 매개 변수가 가리키는 MIB_IPFORWARD_ROW2 구조체의 메트릭 멤버에 지정된 경로 메트릭 오프셋은 전체 경로 메트릭의 일부만 나타냅니다. 전체 메트릭은 연결된 인터페이스의 MIB_IPINTERFACE_ROW 구조의 메트릭 멤버에 지정된 인터페이스 메트릭에 추가된 이 경로 메트릭 오프셋의 조합입니다. 애플리케이션은 GetIpInterfaceEntry 함수를 호출하여 인터페이스 메트릭을 검색할 수 있습니다.

Row가 가리키는 MIB_IPFORWARD_ROW2 구조체의 AgeOrigin 멤버는 CreateIpForwardEntry2 함수가 호출될 때 무시됩니다. 이러한 멤버는 네트워크 스택에 의해 설정되며 CreateIpForwardEntry2 함수를 사용하여 설정할 수 없습니다.

Row 매개 변수가 가리키는 MIB_IPFORWARD_ROW2DestinationPrefixNextHop 멤버가 InterfaceLuid 또는 InterfaceIndex 멤버에 지정된 인터페이스의 기존 IP 경로 항목과 중복된 경우 CreateIpForwardEntry2 함수가 실패합니다.

CreateIpForwardEntry2 함수는 Administrators 그룹의 구성원으로 로그온한 사용자만 호출할 수 있습니다. Administrators 그룹의 구성원이 아닌 사용자가 CreateIpForwardEntry2 를 호출하면 함수 호출이 실패하고 ERROR_ACCESS_DENIED 반환됩니다. Windows Vista 이상에서 UAC(사용자 계정 제어)로 인해 이 함수가 실패할 수도 있습니다. 이 함수를 포함하는 애플리케이션이 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자에 의해 실행되는 경우 애플리케이션이 requireAdministrator로 설정된 requestedExecutionLevel 이 매니페스트 파일에 표시되지 않는 한 이 호출은 실패합니다. 애플리케이션에 이 매니페스트 파일이 없는 경우 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자는 이 함수가 성공하려면 기본 제공 관리자(RunAs 관리자)로 향상된 셸에서 애플리케이션을 실행해야 합니다.

요구 사항

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

추가 정보

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardEntry2

GetIpForwardTable2

GetIpInterfaceEntry

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_IPINTERFACE_ROW

NotifyRouteChange2

SetIpForwardEntry2