LPM_AdmitRsvpMsg函式 (lpmapi.h)

PCM 會呼叫LPM_AdmitRsvpMsg函式,以將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 訊息的長度,以位元組為單位。

意義
RsvpMsgType
RSVP 訊息類型,如 RSVP 通訊協定所定義。
RsvpSession
RSVP 工作階段的指標,如 RSVP 通訊協定所定義。 請注意,內容會依主機順序排列。
RsvpFromHop
接收 RSVP 訊息之躍點的指標。 請注意,內容會依主機順序排列。
RsvpScope
RSVP 範圍物件的指標。
RsvpStyle
RSVP 保留樣式的指標,如 RSVP 通訊協定所定義。 請注意,內容會依主機順序排列。
FlowDescListCount
流量描述項的數目。
FlowDescList
流程描述項指標的陣列。
PolicyDataCount
原則數據物件的數目。
PolicyDataObjects
原則數據對象指標的陣列。 請注意,只有 RSVP 對象標頭和原則選項會轉換成主機順序,但原則元素標頭和內容會依網路順序保留;PCM 無法將後者轉換成主機順序,因為 PCM 無法剖析原則元素。 請注意,Microsoft 提供的 LPM Msidlpm.dll 會重新排序原則元素內容成主機順序。
ErrorSpec
所接收 RSVP ERROR_SPEC 物件的指標。

[in] RcvdRsvpMsg

RSVP 訊息,以網路順序排列。

[out] pulPcmActionFlags

用來指定 PCM 要求之動作的旗標。 LPM 目前可以將此參數設定為 FORCE_IMMEDIATE_REFRESH,以要求立即重新整理所接受的訊息。 如果偵測到原則數據變更想要立即轉送,LPM 可以設定此旗標。 傳送之前,SBM 會要求 LPM 提供傳出重新整理訊息的原則資訊。

請注意,接受新的PATH訊息時,LPM不需要設定此旗標;SBC 會自動將新的PATH訊息傳送給接收者。

[out] pPolicyDecisions

原則決策的指標。 LPM 必須使用 LPM_Initialize 函數調用中提供的記憶體配置器來配置此緩衝區;SBM 會在 pPolicyDecisions 上執行之後釋放緩衝區。 只有在函式傳回LPM_RESULT_READY時,PCM 才會查看 pPolicyDecisions 。 必須針對 FlowDescList 中的每個流程傳回同步原則決策, 而 pPolicyDecisions 陣列中的項目數目必須等於 FlowDescListCount。 每個原則決策都包含下表所示的值。

意義
LpmPriorityValue
緩衝區的指標,從 LPM 接收 LPM 優先順序值。 請注意,如果 LPM_AdmitRsvpMsg 的傳回值設定為 LPM_RESULT_READY,PCM 只會查看此參數。 如果 LPM 以同步方式傳回結果,此參數必須設定為有效的優先順序值。 如需詳細資訊,請參閱 本機原則模組
PolicyErrorCode
原則錯誤碼的指標。 如果要求是以同步方式拒絕,則 LPM 必須提供此參數的非零值;當傳送 PATHERR 或 RESVERR 訊息時,SBM 會將此值與 PolicyErrorValue 結合,複製到 RSVP 錯誤物件, (作為原則型許可控制失敗的結果,以提供拒絕要求的原因) 。
PolicyErrorValue
原則錯誤值的指標。 如果要求是以同步方式拒絕,則 LPM 必須提供此參數的非零值;當傳送 PATHERR 或 RESVERR 訊息時,SBM 會將此值與 PolicyErrorCode 結合,複製到 RSVP 錯誤物件中, (作為原則型許可控制失敗的結果,以提供拒絕要求的原因) 。
 

由於 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

另請參閱

LPM_Initialize

cbAdmitResult

cbGetRsvpObjects