系結選項常數

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

注意

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

常數/值 Description
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

管理網路連線集 (關聯)