LPM_AdmitRsvpMsg 함수(lpmapi.h)

LPM_AdmitRsvpMsg 함수는 정책 기반 허용 제어 결정을 위해 RSVP 메시지를 LPM에 전달하기 위해 PCM에서 호출됩니다. 반환 값을 적절하게 설정하여 LPM_AdmitRsvpMsg 호출 결과를 동기적으로 또는 비동기적으로 PCM에 다시 전달할 수 있습니다. cbAdmitResult 함수를 호출하여 비동기 결과를 반환해야 합니다.

Syntax

ULONG LPM_AdmitRsvpMsg(
  [in]  RHANDLE         PcmReqHandle,
  [in]  RSVP_HOP        *pRecvdIntf,
  [in]  RSVP_MSG_OBJS   *pRsvpMsgObjs,
  [in]  int             RcvdRsvpMsgLength,
  [in]  UCHAR           *RcvdRsvpMsg,
  [out] ULONG           *pulPcmActionFlags,
  [out] POLICY_DECISION *pPolicyDecisions,
  [out] void            *Reserved
);

매개 변수

[in] PcmReqHandle

다른 모든 요청에서 이 요청을 식별하는 고유 핸들입니다. lPM은 cbAdmitResult를 호출하여 개별 요청에 대한 결과를 비동기적으로 반환할 때 이 핸들을 PCM에 전달해야 합니다. 결과가 반환되면 PcmReqHandle 매개 변수가 잘못되어 각 요청이 PCM에서 고유한 PcmReqHandle 을 가져와야 합니다.

[in] pRecvdIntf

메시지를 받은 인터페이스에 대한 포인터입니다. 수신된 인터페이스 IP 주소는 RSVP HOP 개체로 제공되며 논리 인터페이스 핸들은 SNMP 인덱스로 설정됩니다. 인터페이스 인덱스 번호는 Windows 2000의 플러그 앤 플레이 기능으로 인해 인터페이스의 추가 및 삭제와 함께 변경 될 수 있습니다.

[in] pRsvpMsgObjs

RSVP에서 받은 개체입니다. SBM은 RSVP 메시지를 개별 개체로 수신하고 이러한 RSVP 개체의 내용을 호스트 순서로 변환하고 Lpmapi.h에 정의된 RSVP_MSG_OBJS 구조에 제공합니다. 다음 개체가 제공됩니다.

[in] RcvdRsvpMsgLength

수신된 RSVP 메시지의 길이(바이트)입니다.

가치 Meaning
RsvpMsgType
RSVP 프로토콜에 정의된 RSVP 메시지 유형입니다.
RsvpSession
RSVP 프로토콜에 정의된 RSVP 세션에 대한 포인터입니다. 콘텐츠는 호스트 순서에 있습니다.
RsvpFromHop
RSVP 메시지를 받은 홉에 대한 포인터입니다. 콘텐츠는 호스트 순서에 있습니다.
RsvpScope
RSVP 범위 개체에 대한 포인터입니다.
RsvpStyle
RSVP 프로토콜에 정의된 RSVP 예약 스타일에 대한 포인터입니다. 콘텐츠는 호스트 순서에 있습니다.
FlowDescListCount
흐름 설명자 수입니다.
FlowDescList
흐름 설명자 포인터의 배열입니다.
PolicyDataCount
정책 데이터 개체의 수입니다.
PolicyDataObjects
정책 데이터 개체 포인터의 배열입니다. RSVP 개체 헤더와 정책 옵션만 호스트 순서로 변환되지만 정책 요소 헤더와 콘텐츠는 네트워크 순서로 유지됩니다. PCM은 정책 요소를 구문 분석할 수 없으므로 후자를 호스트 순서로 변환할 수 없습니다. Microsoft에서 제공하는 LPM(Msidlpm.dll)은 정책 요소 콘텐츠를 호스트 순서로 다시 정렬합니다.
ErrorSpec
수신된 RSVP ERROR_SPEC 개체에 대한 포인터입니다.

[in] RcvdRsvpMsg

RSVP 메시지(네트워크 순서)

[out] pulPcmActionFlags

PCM에 요청된 작업을 지정하는 데 사용되는 플래그입니다. LPM은 현재 이 매개 변수를 FORCE_IMMEDIATE_REFRESH 설정하여 인정되는 메시지의 즉시 새로 고침을 요청할 수 있습니다. 즉시 전달하려는 정책 데이터의 변경 내용이 감지되면 LPM에서 이 플래그를 설정할 수 있습니다. 보내기 전에 SBM은 나가는 새로 고침 메시지에 대한 정책 정보를 LPM에 제공하도록 요청합니다.

LPM은 새 PATH 메시지가 수락될 때 이 플래그를 설정할 필요가 없습니다. SBM은 수신자를 향해 새 PATH 메시지를 자동으로 보냅니다.

[out] pPolicyDecisions

정책 결정에 대한 포인터입니다. LPM은 LPM_Initialize 함수 호출에 제공된 메모리 할당자를 사용하여 이 버퍼를 할당해야 합니다. sBM은 pPolicyDecisions에서 작동한 후 버퍼를 해제합니다. PCM은 함수가 LPM_RESULT_READY 반환하는 경우에만 pPolicyDecisions 를 살펴봅니다. FlowDescList의 각 흐름에 대해 동기 정책 결정을 반환해야 하며 pPolicyDecisions 배열의 항목 수는 FlowDescListCount와 같아야 합니다. 각 정책 결정은 다음 표에 표시된 값으로 구성됩니다.

가치 Meaning
LpmPriorityValue
LPM에서 LPM 우선 순위 값을 받을 버퍼에 대한 포인터입니다. PCM은 LPM_AdmitRsvpMsg 반환 값이 LPM_RESULT_READY 설정된 경우에만 이 매개 변수를 확인합니다. LPM이 결과를 동기적으로 반환하는 경우 이 매개 변수를 유효한 우선 순위 값으로 설정해야 합니다. 자세한 내용은 로컬 정책 모듈 을 참조하세요.
PolicyErrorCode
정책 오류 코드에 대한 포인터입니다. 요청이 동기적으로 거부되는 경우 LPM은 이 매개 변수에 대해 0이 아닌 값을 제공해야 합니다. SBM은 PATHERR 또는 RESVERR 메시지를 보낼 때 PolicyErrorValue와 함께 이 값을 RSVP 오류 개체에 복사합니다(정책 기반 허용 제어 실패의 결과로 요청을 거부하는 이유를 제공).
PolicyErrorValue
정책 오류 값에 대한 포인터입니다. 요청이 동기적으로 거부되는 경우 LPM은 이 매개 변수에 대해 0이 아닌 값을 제공해야 합니다. SBM은 PATHERR 또는 RESVERR 메시지를 보낼 때 PolicyErrorCode와 함께 이 값을 RSVP 오류 개체에 복사합니다(정책 기반 허용 제어 실패의 결과로 요청을 거부하는 이유를 제공).
 

LPM의 반환 POLICY_DECISION 배열이므로 LPM은 FlowDescList 의 흐름 하위 집합을 수락하고 적절한 경우 나머지 흐름을 거부할 수 있습니다. 예를 들어 FF 스타일 RESV 메시지에는 여러 흐름이 포함될 수 있으므로 LPM이 일부 흐름을 거부하고 다른 흐름을 수락하면 SBM은 거부된 각 흐름에 대해 별도의 RESVERR 메시지를 생성합니다. RESVERR 메시지를 보내기 전에 PCM은 각 LPM을 호출하여 나가는 각 RESVERR 메시지에 대한 정책 데이터 개체를 제공합니다.

[out] Reserved

향후 사용을 위해 예약됨.

반환 값

이 함수는 ULONG을 반환합니다.

비고

SBM(서브넷 대역폭 관리자)은 RSVP PATH, RESV, PATHERR, RESVERR, PATH_TEAR 및 RESV_TEAR 메시지를 PCM에 전달합니다. 요청이 LPM 정책 기반 허용을 통과하는 경우(이 경우 성공 상태가 PCM을 통해 SBM으로 전달됨) SBM은 RSVP 처리의 일부로 리소스 기반 허용 제어를 수행합니다. 리소스 기반 허용 제어가 실패하면 SBM은 PCM에 LPM_CommitResv 함수를 통해 각 LPM의 상태를 삭제하도록 지시합니다. 이러한 경우 SBM(LPM이 아님)은 필수 RSVP 오류 메시지를 만듭니다.

요구 사항

요구 사항 가치
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱만 해당]
대상 플랫폼 윈도우즈
Header lpmapi.h

참고하십시오

LPM_Initialize

cbAdmitResult

cbGetRsvpObjects