[이 API는 라우팅 테이블 관리자 버전 2 API로 대체되었으며 Windows Server 2003 이후로는 사용할 수 없습니다. 애플리케이션은 라우팅 테이블 관리자 버전 2 API를 사용해야 합니다.]
RtmAddRoute 함수는 경로 항목을 추가하거나 기존 경로 항목을 업데이트합니다.
구문
DWORD RtmAddRoute(
_In_ HANDLE ClientHandle,
_In_ PVOID Route,
_In_ DWORD TimeToLive,
_Out_ DWORD Flags,
_Out_ PVOID CurBestRoute,
_Out_ PVOID PrevBestRoute
);
매개 변수
-
ClientHandle [in]
-
경로를 추가하거나 업데이트한 클라이언트 및 라우팅 프로토콜을 식별하는 핸들입니다. RtmRegisterClient를 호출하여 이 핸들을 가져옵니다.
-
경로 [in]
-
새 경로 또는 업데이트된 경로를 지정하는 프로토콜 패밀리별 구조체에 대한 포인터입니다. 다음 필드는 라우팅 테이블 관리자가 라우팅 테이블을 업데이트하는 데 사용됩니다.
값 의미 - RR_Network
대상 네트워크 번호를 지정합니다. - RR_InterfaceID
경로가 수신된 인터페이스의 인덱스를 지정합니다. - RR_NextHopAddress
다음 홉 라우터의 주소를 지정합니다. - RR_FamilySpecificData
프로토콜 패밀리와 관련된 데이터를 지정합니다. 데이터는 라우팅 테이블 관리자에 대해 투명하지만 경로를 비교할 때 경로 정보가 변경되었는지 확인할 때 고려됩니다. 데이터는 라우팅 프로토콜과 독립적인 메트릭 값을 설정하는 데도 사용됩니다. 따라서 이 데이터는 대상 네트워크에 가장 적합한 경로를 결정하는 데 사용됩니다. - RR_ProtocolSpecificData
경로를 제공한 라우팅 프로토콜과 관련된 데이터를 지정합니다. - RR_TimeStamp
현재 시스템 시간을 지정합니다. 이 필드는 라우팅 테이블 관리자에 의해 설정됩니다. -
TimeToLive [in]
-
지정된 경로를 라우팅 테이블에 유지해야 하는 시간(초)을 지정합니다. 이 매개 변수를 INFINITE로 설정하면 경로가 명시적으로 삭제될 때까지 유지됩니다. TimeToLive의 현재 제한은 2147483 초(24일 이상)입니다.
-
플래그 [out]
-
DWORD 변수에 대한 포인터입니다. 이 변수의 값은 라우팅 테이블 관리자에 의해 설정됩니다. 값은 변경 형식과 제공된 버퍼에 반환된 정보를 나타냅니다. 이 매개 변수는 다음 중 하나입니다.
플래그 의미 - RTM_NO_CHANGE
추가 또는 업데이트는 중요한 경로 매개 변수를 변경하지 않았거나 영향을 받는 경로 항목이 대상 네트워크의 항목 중에서 가장 적합한 경로가 아닙니다. - RTM_ROUTE_ADDED
대상 네트워크에 대한 경로가 추가되었습니다. CurBestRoute 매개 변수는 추가된 경로에 대한 정보를 가리킵니다. - RTM_ROUTE_CHANGED
대상 네트워크로 가는 최상의 경로를 위해 중요한 매개 변수 중 하나 이상이 변경되었습니다. 중요한 매개 변수는 다음과 같습니다.
프로토콜 식별자
인터페이스 인덱스
다음 홉 주소
프로토콜 패밀리별 데이터(경로 메트릭 포함)PrevBestRoute 매개 변수는 변경 전의 경로 정보를 가리킵니다. CurBestRoute 매개 변수는 현재(즉, 변경 후) 경로 정보를 가리킵니다.
-
CurBestRoute [out]
-
현재 최적 경로 정보를 수신하는 구조체(있는 경우)에 대한 포인터입니다. 구조체의 형식은 프로토콜 패밀리(예: IP 또는 IPX)에 따라 다릅니다.
이 매개 변수는 선택 사항입니다. 호출자가 이 매개 변수에 대해 NULL 을 지정하면 현재 최적 경로 정보가 반환되지 않습니다.
-
PrevBestRoute [out]
-
이전 최적 경로 정보를 수신하는 구조체(있는 경우)에 대한 포인터입니다. 구조체의 형식은 프로토콜 패밀리(예: IP 또는 IPX)에 따라 다릅니다.
이 매개 변수는 선택 사항입니다. 호출자가 이 매개 변수에 대해 NULL 을 지정하면 이전의 최상의 경로 정보가 반환되지 않습니다.
반환 값
반환 값은 다음 코드 중 하나입니다.
| 값 | Description |
|---|---|
|
경로가 성공적으로 추가되거나 업데이트되었습니다. |
|
클라이언트 핸들 매개 변수가 유효한 핸들이 아닙니다. |
|
경로 구조에 잘못된 매개 변수가 포함되어 있습니다. |
|
작업을 수행할 리소스가 부족합니다. |
|
경로 항목을 할당할 메모리가 부족합니다. |
설명
이 작업의 결과로 대상 네트워크에 대한 최상의 경로가 변경된 경우 함수는 경로 변경 메시지를 생성합니다. 그러나 경로 변경 메시지는 이 호출을 하는 클라이언트로 전송되지 않습니다. 대신 Flags, CurBestRoute 및 PrevBestRoute 매개 변수를 통해 이 함수에서 해당 클라이언트에 직접 관련 정보를 반환합니다.
요구 사항
| 요구 사항 | 값 |
|---|---|
| 지원되는 최소 클라이언트 |
지원되는 버전 없음 |
| 지원되는 최소 서버 |
Windows 2000 Server[데스크톱 앱만] |
| 서버 지원 종료 |
Windows Server 2003 |
| 헤더 |
|
| 라이브러리 |
|
| DLL |
|