다음을 통해 공유


RtmCreateRouteEnum 함수(rtmv2.h)

RtmCreateRouteEnum 함수는 라우팅 테이블의 특정 대상 또는 대상 범위에 대한 경로의 열거형을 만듭니다. 클라이언트는 하나 이상의 뷰 또는 모든 보기에 대한 경로를 열거할 수 있습니다.

구문

DWORD RtmCreateRouteEnum(
  [in]  RTM_ENTITY_HANDLE RtmRegHandle,
  [in]  RTM_DEST_HANDLE   DestHandle,
  [in]  RTM_VIEW_SET      TargetViews,
  [in]  RTM_ENUM_FLAGS    EnumFlags,
  [in]  PRTM_NET_ADDRESS  StartDest,
  [in]  RTM_MATCH_FLAGS   MatchingFlags,
  [in]  PRTM_ROUTE_INFO   CriteriaRoute,
  [in]  ULONG             CriteriaInterface,
  [out] PRTM_ENUM_HANDLE  RtmEnumHandle
);

매개 변수

[in] RtmRegHandle

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

[in] DestHandle

경로를 열거할 대상에 대한 핸들입니다. 이 매개 변수는 선택 사항이며 NULL로 설정할 수 있습니다. NULL 을 지정하면 모든 대상에 대한 모든 경로가 열거됩니다. EnumFlags에 RTM_ENUM_START 포함되어 있으면 NULL을 지정합니다.

[in] TargetViews

열거형을 만들 때 사용할 뷰 집합을 지정합니다. 다음 플래그가 사용됩니다.

상수 의미
RTM_VIEW_MASK_ANY
모든 보기에서 대상을 반환합니다. 이것은 기본값입니다.
RTM_VIEW_MASK_UCAST
유니캐스트 보기에서 대상을 반환합니다.
RTM_VIEW_MASK_MCAST
멀티캐스트 보기에서 대상을 반환합니다.

[in] EnumFlags

열거형에 포함할 경로를 지정합니다. 두 개의 플래그 집합이 사용됩니다. 각 집합에서 하나의 플래그를 사용합니다(예: RTM_ENUM_ALL_ROUTES 및 RTM_ENUM_START).

상수 의미
RTM_ENUM_ALL_ROUTES
모든 경로를 반환합니다.
RTM_ENUM_OWN_ROUTES
클라이언트가 소유한 경로만 반환합니다.
 
상수 의미
RTM_ENUM_NEXT
지정된 주소/마스크 길이(예: 10/8)에서 시작하는 경로를 열거합니다. 열거형은 라우팅 테이블의 끝까지 계속됩니다.
RTM_ENUM_RANGE
주소/마스크 길이(예: 10/8)로 지정된 범위의 경로를 열거합니다.
RTM_ENUM_START
0/0부터 시작하는 경로를 열거합니다. NetAddressNULL을 지정합니다.

[in] StartDest

열거형의 시작 주소를 포함하는 RTM_NET_ADDRESS 구조체에 대한 포인터입니다. EnumFlags에 RTM_ENUM_START 포함된 경우 이 매개 변수는 무시됩니다.

[in] MatchingFlags

일치시킬 경로의 요소를 지정합니다. CriteriaRouteCriteriaInterface에 지정된 조건과 일치하는 경로만 반환됩니다(달리 명시되지 않은 경우). 다음 플래그가 사용됩니다.

상수 의미
RTM_MATCH_FULL
경로를 모든 조건과 일치합니다.
RTM_MATCH_INTERFACE
동일한 인터페이스에 있는 경로와 일치합니다. 클라이언트는 CriteriaRouteNULL을 지정할 수 있습니다.
RTM_MATCH_NEIGHBOUR
경로를 동일한 인접 항목과 일치합니다.
RTM_MATCH_NEXTHOP
다음 홉이 동일한 경로와 일치합니다.
RTM_MATCH_NONE
조건 중 어느 것도 일치하지 않습니다. 대상에 대한 모든 경로가 반환됩니다. 이 플래그가 설정된 경우 CriteriaRoute 매개 변수는 무시됩니다.
RTM_MATCH_OWNER
동일한 소유자와 경로를 일치합니다.
RTM_MATCH_PREF
기본 설정이 동일한 경로와 일치합니다.

[in] CriteriaRoute

열거할 경로를 지정합니다. 이 매개 변수는 선택 사항이며 MatchingFlags에 RTM_MATCH_INTERFACE 또는 RTM_MATCH_NONE 포함된 경우 NULL로 설정할 수 있습니다.

[in] CriteriaInterface

배치해야 하는 인터페이스 경로를 지정하는 ULONG 에 대한 포인터입니다. MatchingFlags에 RTM_MATCH_INTERFACE 포함되어 있지 않으면 이 매개 변수는 무시됩니다.

[out] RtmEnumHandle

입력 시 RtmEnumHandleNULL에 대한 포인터입니다.

출력 시 RtmEnumHandle 은 열거형에 대한 핸들에 대한 포인터를 받습니다. RtmGetEnumRoutes, RtmReleaseRoutesRtmDeleteEnumHandle에 대한 모든 후속 호출에서 이 핸들을 사용합니다.

반환 값

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

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

의미
ERROR_INVALID_PARAMETER
매개 변수에 잘못된 정보가 포함되어 있습니다.
ERROR_NOT_ENOUGH_MEMORY
메모리가 부족하여 이 작업을 완료할 수 없습니다.
ERROR_NOT_SUPPORTED
지정된 뷰 중 하나 이상이 지원되지 않습니다.
 
 

설명

EnumFlags에 RTM_ENUM_RANGE 포함된 경우 NetAddress를 사용하여 열거할 라우팅 테이블의 범위를 지정합니다. 예를 들어 클라이언트가 NetAddress 를 10/8로 설정하면 10.0.0.0/8에서 10.255.255.255/32 범위의 대상이 반환됩니다.

열거형 핸들이 더 이상 필요하지 않으면 RtmDeleteEnumHandle을 호출하여 해제합니다.

이 함수를 사용하는 샘플 코드는 모든 경로 열거를 참조하세요.

요구 사항

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

추가 정보

RTM_NET_ADDRESS

RTM_ROUTE_INFO

RtmDeleteEnumHandle

RtmGetEnumRoutes

RtmReleaseRoutes