CBGETRSVPOBJECTS 回调函数 (lpmapi.h)
cbGetRsvpObjects 函数是用于 LPM 的回调函数,用于异步返回LPM_GetRsvpObjects请求的结果。 LPM 调用 cbGetRsvpObjects 函数,以异步方式将策略数据对象返回到 PCM 以LPM_GetRsvpObjects 请求。 仅当 LPM 返回LPM_RESULTS_DEFER PCM 的LPM_GetRsvpObjects请求时,才应使用 cbGetRsvpObjects 函数。
语法
CBGETRSVPOBJECTS Cbgetrsvpobjects;
ULONG * Cbgetrsvpobjects(
[in] LPM_HANDLE LpmHandle,
[in] RHANDLE RequestHandle,
[in] int LpmError,
[in] int RsvpObjectsCount,
[in] RsvpObjHdr **ppRsvpObjects
)
{...}
参数
[in] LpmHandle
LPM 的唯一句柄,如 LPM_Initialize 中提供。 PCM 将忽略未附带有效句柄的任何结果。
[in] RequestHandle
将此请求与所有其他请求区分开来的唯一句柄,该句柄从相应的 LPM_GetRsvpObjects 请求中提供。
[in] LpmError
错误值,由 PCM 用于确定是否应使用此函数返回的策略数据对象。 除 LPM_OK 之外的任何值都将导致 PCM 忽略 *RsvpObjects 的内容。
请注意,如果 LPM 返回错误,则应释放在 LPM_GetRsvpObjects 请求处理期间分配的缓冲区;这些缓冲区应已使用 MemoryAllocator 函数进行分配,该函数在 LPM_Initialize 函数中作为其 FreeMemory 参数提供。
如果未返回任何策略数据对象,必须将 LpmError 设置为 LPM_OK,RsvpObjectsCount 必须设置为零,并且 *RsvpObjects 必须设置为 null。 LPM 可以通过将 LpmError 的值设置为 LPV_DROP_MSG 来强制 SBM 停止发送 RSVP 消息。
[in] RsvpObjectsCount
要返回的策略数据对象数。 如果未返回任何策略数据对象,则必须将 LpmError 参数设置为 LPM_OK,RsvpObjectsCount 参数必须设置为零,并且 *RsvpObjects 参数必须设置为 null。
[in] ppRsvpObjects
指向策略数据对象的指针数组。 应使用在 LPM_Initialize 函数中提供的 MemoryAllocator 函数分配包含策略数据对象的缓冲区。 子网带宽管理器 (SBM) 会在不再需要策略数据对象时释放它们。
如果未返回任何策略数据对象,必须将 LpmError 设置为 LPM_OK,RsvpObjectsCount 必须设置为零,并且 *RsvpObjects 必须设置为 null。
返回值
返回值由提供回调的应用程序定义。
注解
如果只需要默认选项,则LPM不需要发送策略数据选项。 由于策略数据对象的内容对 PCM 不透明,因此 PCM 不会对策略元素标头和内容进行主机到网络顺序转换:PCM 要求 LPM 按网络顺序生成策略元素,以便策略元素的接收方可以正确分析它们。 但是,策略数据对象标头必须位于主机中,以便允许 PCM 将策略元素合并 ((如果可能或适用)) 。
从支持所有 PE 类型的LPM中,PCM 需要完整的策略数据对象及其所需的策略数据选项。 此外,PCM 还要求策略数据对象标头处于主机顺序;LPM 负责处理策略选项和策略元素的主机到网络顺序转换。
如果任何 LPM 返回LPV_DROP_MSG,SBM 将不会发送 RSVP 刷新消息,但会释放其他 LPM 返回的策略数据对象 (那些未返回LPV_DROP_MSG的对象(如果有任何) )。 如果不发送 RSVP 刷新消息,流的 RSVP 状态上游和下游都将开始过期,并最终被删除。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | lpmapi.h |