系結選項常數

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

注意

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

常數/值 描述
RPC_C_OPT_BINDING_NONCAUSAL
9
預設值。 如果 為 FALSE,則為因果呼叫順序。 RPC 呼叫會以嚴格的提交循序執行。 請參閱<備註>。
如果 為 TRUE,則為非因果呼叫順序。 RPC 呼叫會獨立執行。 請參閱<備註>。
RPC_C_OPT_MAX_OPTIONS
17
應用程式程式不需要。 Microsoft 在內部使用。
RPC_C_DONT_FAIL
4
應用程式程式不需要。 Microsoft 在內部使用。
RPC_C_OPT_SESSION_ID
6
如果為 TRUE,則會為每個連線產生會話識別碼。
RPC_C_OPT_COOKIE_AUTH
7
如果 為 TRUE,用戶端 Cookie 型驗證會用於連線。 RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR結構的指標會當做RpcBindingSetOption中的OptionValue參數傳遞。
RPC_C_OPT_RESOURCE_TYPE_UUID
8
應用程式程式不需要。 Microsoft 在內部使用。
RPC_C_OPT_DONT_LINGER
13
如果 為 TRUE,則會釋放上一個系結控制碼/內容控制碼之後,強制關閉關聯。
RPC_C_OPT_UNIQUE_BINDING
11
當設定為 true時,RPC 不會重複使用現有的連線。 每個連接都會開啟唯一的系結控制碼,而且會針對每個唯一的系結控制碼維護狀態。

備註

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

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

RPC_C_OPT_DONT_LINGER選項只能在使用ncalrpcncacn_*通訊協定序列的系結控制碼上設定。 無法在 ncadg_* 通訊協定序列上使用。 在至少有一個 RPC 呼叫的系結控制碼上,必須呼叫具有此選項的 RpcBindingSetOption 函式。 如果系結控制碼上未進行任何 RPC 呼叫,則會從RpcBindingSetOption函式呼叫傳回RPC_S_WRONG_KIND_OF_BINDING。 不論有多少系結控制碼附加至關聯,選項都會對整個關聯生效。 由於在終結關聯之前會先檢查它,所以可以隨時在關閉系結控制碼之前加以設定。

規格需求

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

另請參閱

RpcBindingSetOption

RpcBindingInqOption

管理網路連線集 (關聯)