다음을 통해 공유


RtmAddRouteToDest 함수(rtmv2.h)

RtmAddRouteToDest 함수는 라우팅 테이블에 새 경로를 추가하거나 라우팅 테이블의 기존 경로를 업데이트합니다. 최상의 경로가 변경되면 변경 알림이 생성됩니다.

구문

DWORD RtmAddRouteToDest(
  [in]      RTM_ENTITY_HANDLE       RtmRegHandle,
  [in, out] PRTM_ROUTE_HANDLE       RouteHandle,
  [in]      PRTM_NET_ADDRESS        DestAddress,
  [in]      PRTM_ROUTE_INFO         RouteInfo,
  [in]      ULONG                   TimeToLive,
  [in]      RTM_ROUTE_LIST_HANDLE   RouteListHandle,
  [in]      RTM_NOTIFY_FLAGS        NotifyType,
  [in]      RTM_NOTIFY_HANDLE       NotifyHandle,
  [in, out] PRTM_ROUTE_CHANGE_FLAGS ChangeFlags
);

매개 변수

[in] RtmRegHandle

RtmRegisterEntity에 대한 이전 호출에서 얻은 클라이언트에 대한 핸들입니다.

[in, out] RouteHandle

클라이언트에 핸들이 있는 경우(경로 업데이트): 입력에서 RouteHandle 은 경로 핸들에 대한 포인터입니다. 출력에서 RouteHandle 은 변경되지 않습니다.

클라이언트에 핸들이 없으며 핸들을 반환해야 하는 경우(클라이언트가 경로를 추가하거나 업데이트하는 경우): 입력에서 RouteHandleNULL에 대한 포인터입니다. 출력 시 RouteHandle 은 경로 핸들에 대한 포인터를 받습니다. RouteInfo의 값은 업데이트할 경로를 식별하는 데 사용됩니다.

핸들을 반환할 필요가 없는 경우(클라이언트가 경로를 추가하거나 업데이트하는 경우): 입력에서 RouteHandleNULL입니다. RouteInfo의 값은 업데이트할 경로를 식별하는 데 사용됩니다.

[in] DestAddress

경로가 추가되거나 업데이트되는 대상 네트워크 주소에 대한 포인터입니다.

[in] RouteInfo

추가 또는 업데이트할 경로 정보에 대한 포인터입니다.

[in] TimeToLive

경로가 만료된 시간(밀리초)을 지정합니다. 경로가 만료되지 않도록 INFINITE를 지정합니다.

[in] RouteListHandle

경로를 이동할 경로 목록에 대한 핸들입니다. 이 매개 변수는 선택 사항이며 NULL로 설정할 수 있습니다.

[in] NotifyType

이 매개 변수를 NULL로 설정합니다. 이 매개 변수는 나중에 사용하도록 예약되어 있습니다.

[in] NotifyHandle

이 매개 변수를 NULL로 설정합니다. 이 매개 변수는 나중에 사용하도록 예약되어 있습니다.

[in, out] ChangeFlags

입력 시 ChangeFlags 는 라우팅 테이블 관리자가 새 경로를 추가하거나 기존 경로를 업데이트해야 하는지 여부를 나타내는 RTM_ROUTE_CHANGE_FLAGS 데이터 형식에 대한 포인터입니다.

출력에서 ChangeFlags 는 실제로 수행된 변경 유형을 나타내는 플래그를 수신하고 최상의 경로가 변경되었는지 여부를 나타내는 RTM_ROUTE_CHANGE_FLAGS 데이터 형식 에 대한 포인터입니다. 다음 플래그가 사용됩니다.

상수 의미
RTM_ROUTE_CHANGE_FIRST
라우팅 테이블 관리자가 두 경로가 같은지 확인할 때 RouteInfo 매개 변수의 이웃 멤버를 검사 않음을 나타냅니다.
RTM_ROUTE_CHANGE_NEW
새 경로가 만들어졌음을 나타내기 위해 라우팅 테이블 관리자가 반환합니다.
RTM_ROUTE_CHANGE_BEST
라우팅 테이블 관리자가 반환하여 추가되거나 업데이트된 경로가 최상의 경로이거나 변경으로 인해 새 경로가 최상의 경로가 되었음을 나타냅니다.

반환 값

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

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

의미
ERROR_ACCESS_DENIED
호출 클라이언트는 이 경로를 소유하지 않습니다.
ERROR_INVALID_HANDLE
핸들이 잘못되었습니다.
ERROR_INVALID_PARAMETER
매개 변수에 잘못된 정보가 포함되어 있습니다.
ERROR_NOT_ENOUGH_MEMORY
메모리가 부족하여 이 작업을 완료할 수 없습니다.
 
 

설명

다음 값이 같으면 두 경로가 같은 것으로 간주됩니다.

  • 대상 네트워크
  • 경로의 소유자
  • 경로를 제공한 이웃
클라이언트가 경로를 업데이트하는 경우 라우팅 테이블 관리자가 라우팅 테이블의 경로 검색을 수행할 필요가 없으므로 RouteHandle 매개 변수에서 업데이트할 경로에 핸들을 전달하는 것이 더 효율적입니다.

핸들이 반환된 경우 RtmReleaseRoutes를 호출하여 더 이상 필요하지 않은 경우 핸들을 해제합니다.

이 함수를 사용하는 샘플 코드는 RtmAddRouteToDest를 사용하여 경로 추가 및 업데이트를 참조하세요.

요구 사항

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

추가 정보

RTM_NET_ADDRESS

RTM_ROUTE_INFO

RtmDeleteRouteToDest

RtmGetRoutePointer

RtmHoldDestination

RtmLockRoute

RtmReleaseRoutes

RtmUpdateAndUnlockRoute