LPM_AdmitRsvpMsg 函数 (lpmapi.h)
LPM_ADMITRSVPMSG函数由 PCM 调用,用于将 RSVP 消息传递给 LPM,以做出基于策略的允许控制决策。 调用 LPM_AdmitRsvpMsg 的结果可以通过适当设置返回值,以同步或异步方式传回 PCM。 应通过调用 cbAdmitResult 函数返回异步结果。
语法
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
从所有其他请求中标识此请求的唯一句柄。 当通过调用 cbAdmitResult 为单个请求异步返回结果时,LPM 必须将此句柄传递给 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 消息的长度(以字节为单位)。
[in] RcvdRsvpMsg
RSVP 消息,按网络顺序排列。
[out] pulPcmActionFlags
用于指定 PCM 请求的操作的标志。 LPM 当前可以将此参数设置为FORCE_IMMEDIATE_REFRESH请求立即刷新被允许的消息。 如果检测到策略数据发生更改,LPM 可以设置此标志,而该更改需要立即转发。 在发送之前,SBM 要求 LPM 为传出刷新消息提供策略信息。
请注意,当接受新的 PATH 消息时,LPM 不需要设置此标志;SPM 会自动向接收方发送新的 PATH 消息。
[out] pPolicyDecisions
指向策略决策的指针。 LPM 必须使用LPM_Initialize函数调用中提供的内存分配器分配 此 缓冲区;SBM 在对 pPolicyDecisions 执行操作后释放缓冲区。 仅当函数返回LPM_RESULT_READY时,PCM 才会查看 pPolicyDecisions 。 必须为 FlowDescList 中的每个流返回同步策略决策,并且 pPolicyDecisions 数组中的条目数必须等于 FlowDescListCount。 每个策略决策都包含下表中显示的值。
值 | 含义 |
---|---|
|
指向从 LPM 接收 LPM 优先级值的缓冲区的指针。 请注意,仅当LPM_AdmitRsvpMsg的返回值设置为 LPM_RESULT_READY 时,PCM 才会查看此参数。 如果 LPM 同步返回结果,则必须将此参数设置为有效的优先级值。 有关详细信息 ,请参阅本地策略模块 。 |
|
指向策略错误代码的指针。 如果请求被同步拒绝,则 LPM 必须为此参数提供非零值;当将 PATHERR 或 RESVERR 消息作为基于策略的允许控制失败的结果发送 (时,SBM 会将此值与 PolicyErrorValue 一起复制到 RSVP 错误对象中,以提供拒绝请求) 的原因。 |
|
指向策略错误值的指针。 如果请求被同步拒绝,则 LPM 必须为此参数提供非零值;由于基于策略的允许控制失败,SBM 会将此值与 PolicyErrorCode 一起复制到 RSVP 错误对象中, (发送 PATHERR 或 RESVERR 消息,以提供拒绝请求) 的原因。 |
由于 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 通过 LPM_CommitResv 函数删除其状态。 在这种情况下,SBM (而不是) 的LPM将创建必要的 RSVP 错误消息。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | lpmapi.h |