다음을 통해 공유


RtmAddRoute 함수

[이 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
NO_ERROR
경로가 성공적으로 추가되거나 업데이트되었습니다.
ERROR_INVALID_HANDLE
클라이언트 핸들 매개 변수가 유효한 핸들이 아닙니다.
ERROR_INVALID_PARAMETER
경로 구조에 잘못된 매개 변수가 포함되어 있습니다.
ERROR_NO_SYSTEM_RESOURCES
작업을 수행할 리소스가 부족합니다.
ERROR_NOT_ENOUGH_MEMORY
경로 항목을 할당할 메모리가 부족합니다.

설명

이 작업의 결과로 대상 네트워크에 대한 최상의 경로가 변경된 경우 함수는 경로 변경 메시지를 생성합니다. 그러나 경로 변경 메시지는 이 호출을 하는 클라이언트로 전송되지 않습니다. 대신 Flags, CurBestRoutePrevBestRoute 매개 변수를 통해 이 함수에서 해당 클라이언트에 직접 관련 정보를 반환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
지원되는 버전 없음
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
서버 지원 종료
Windows Server 2003
헤더
Rtm.h
라이브러리
Rtm.lib
DLL
Rtm.dll

추가 정보

라우팅 테이블 관리자 버전 1 참조

라우팅 테이블 관리자 버전 1 함수

RtmDeleteRoute

RtmDequeueRouteChangeMessage