CBGETRSVPOBJECTS 回調函式 (lpmapi.h)
cbGetRsvpObjects 函式是 LPM 的回呼函式,可異步傳回 LPM_GetRsvpObjects 要求的結果。 LPM 會呼叫 cbGetRsvpObjects 函式,以異步方式將原則數據物件傳回 PCM 以取得 LPM_GetRsvpObjects 要求。 LPM 只有在傳回 PCM LPM_GetRsvpObjects 要求LPM_RESULTS_DEFER時,才應該使用 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 可以強制 SBM 停止傳送 RSVP 訊息,方法是將 LpmError 的值設定為 LPV_DROP_MSG。
[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 [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | lpmapi.h |