系結選項常數

應用程式會設定系結選項常數,以控制 RPC 執行時間程式庫處理遠端程序呼叫的方式。 下表列出每個系結屬性,以及系結屬性的相關常數值。

注意

下表中 (MQ) 的所有訊息佇列選項僅適用于 Windows 2000。 Windows XP 和更新版本不支援訊息佇列。 開發人員不建議使用訊息佇列。

常數/值 Description
RPC _C _ OPT _ _
系結 NONCAUSAL
9
預設值。 如果 為 FALSE,則為因果呼叫順序。 RPC 呼叫會以嚴格的提交順序來執行。 請參閱<備註>。
為 TRUE,則 noncausal 呼叫順序。 RPC 呼叫會獨立執行。 請參閱<備註>。
RPC _C _ OPT _ 最大 _ 選項
17
應用程式不需要。 由 Microsoft 在內部使用。
RPC _C _ 不 _ 會失敗
4
應用程式不需要。 由 Microsoft 在內部使用。
RPC _C _ OPT _ 會話 _ 識別碼
6
為 TRUE,則會為每個連接產生會話識別碼。
RPC _C _ OPT _ COOKIE _ 驗證
7
若為 TRUE,則會使用以用戶端 cookie 為基礎的驗證來進行連接。 RPC _ C _ OPT _ COOKIE _ 驗證 _ 描述元結構的指標會在 RpcBindingSetOption中做為 OptionValue 參數傳遞。
RPC _C _ OPT _ 資源 _ 類型 _ UUID
8
應用程式不需要。 由 Microsoft 在內部使用。
RPC _C _ OPT _ _
不會逗留
13
為 TRUE,則會在釋放關聯的最後一個系結控制碼/內容控制碼之後,強制關閉該關聯。
RPC _C _ OPT _ 唯一 _
系結
11
當設為 true 時,RPC 不會重複使用現有的連接。 針對每個連接開啟唯一的系結控制碼,並為每個唯一的系結控制碼維護狀態。

備註

根據預設,RPC 執行時間程式庫會以嚴格的提交順序,從應用程式的每個執行緒在給定的系結控制碼上執行呼叫。 這並不保證會序列化相同系結控制碼上不同執行緒的呼叫。 多執行緒應用程式必須序列化其 RPC 呼叫。 如果此行為過於嚴格,您可以啟用 noncausal 順序。 當您這樣做時,RPC 執行時間程式庫會獨立執行呼叫。 它不會在提交時進行排序。

可能會發現 noncausal 順序的應用程式範例之一,就是執行緒在相同系結控制碼上進行呼叫的多執行緒程式。 同樣地,在系結控制碼上使用多個非同步呼叫的程式,會發現 noncausal 順序是一個方便的選項。 另一個範例可能是使用單一線程處理數個用戶端要求的網際網路 proxy 程式。 在上述每一種情況下,嘗試序列化遠端程序呼叫是非常嚴格的。

您只能在使用 ncalrpc 或 *_ * ncacn _ 通訊協定序列的系結控制碼上設定「 RPC _ C _ OPT 未 _ _ 逗留」選項。 它不能用在 ncadg _ * 通訊協定序列上。 具有此選項的 _ RpcBindingSetOption *函式必須在至少進行一個 RPC 呼叫的系結控制碼上呼叫。 如果未在系結控制碼上進行 RPC 呼叫,則會從 RpcBindingSetOption 函式呼叫傳回 rpc _ S _ 錯誤 _ _ 的 _ 系結類型。 不論附加至關聯的系結控制碼有多少,此選項都會對整個關聯生效。 由於在關聯終結之前會先進行檢查,因此可以在系結控制碼關閉之前隨時進行設定。

規格需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限傳統型應用程式]
標頭
Rpcdce .h;
Rpcdcep .h

另請參閱

RpcBindingSetOption

RpcBindingInqOption

管理 (關聯) 的網路連接集