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 狀態都會開始存留,最終會遭到刪除。

注意 即使部分或所有LPM 無法及時傳回原則數據物件,SBM 還是會傳送RSVP重新整理訊息,即使這類傳出RSVP訊息可能不包含它應該的所有原則數據物件也一樣。
 

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 lpmapi.h

另請參閱

LPM_GetRsvpObjects

LPM_Initialize