CBGETRSVPOBJECTS 回呼函式 (lpmapi.h)
cbGetRsvpObjects 函式是 LPM 的回呼函式,可異步傳回LPM_GetRsvpObjects要求的結果。 LPM 會呼叫 cbGetRsvpObjects 函式,以異步方式將原則數據物件傳回 PCM 以取得 LPM_GetRsvpObjects 要求。 如果 LPM 傳回LPM_RESULTS_DEFER給 PCM 的LPM_GetRsvpObjects要求,LPM 才應該使用 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 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | lpmapi.h |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應