共用方式為


RpcServerUseProtseqEpExW 函式 (rpcdce.h)

RpcServerUseProtseqEpEx 函式會告訴 RPC 執行時間連結庫使用指定的通訊協定序列,結合指定的端點來接收遠端過程調用。

語法

RPC_STATUS RpcServerUseProtseqEpExW(
  RPC_WSTR     Protseq,
  unsigned int MaxCalls,
  RPC_WSTR     Endpoint,
  void         *SecurityDescriptor,
  PRPC_POLICY  Policy
);

參數

Protseq

要向 RPC 執行時間連結庫註冊之通訊協定序列之字串標識碼的指標。

MaxCalls

ncacn_ip_tcp 通訊協定序列的待辦專案佇列長度。 所有其他通訊協定序列都會忽略此參數。 使用RPC_C_PROTSEQ_MAX_REQS_DEFAULT來指定預設值。 請參閱。

Endpoint

要用於建立 Protseq所指定通訊協定序列之端點地址資訊的指標。

SecurityDescriptor

為安全性子系統提供的選擇性參數指標。 僅適用於 ncacn_npncalrpc 通訊協定序列。 所有其他通訊協定序列都會忽略此參數。 不建議在端點上使用安全性描述元,以確保伺服器安全。 此參數不會出現在此 API 的 DCE 規格中。

Policy

RPC_POLICY 結構的指標,其中包含設定傳輸特定屬性的旗標。 在 ncadg_mq 傳輸的情況下,這些旗標會指定伺服器進程接收佇列的屬性。 在 ncacn_ip_tcpncadg_ip_udp 傳輸的情況下,這些旗標會限制動態埠的埠配置,並允許多路計算機選擇性地系結至網路適配器。

原則 欄位中的旗標設定只有在 ncacn_ip_tcpncadg_ip_udpncadg_mq 通訊協定序列正在使用時才有效。 針對所有其他通訊協定序列,RPC 運行時間會忽略這些值。

注意:呼叫 RpcServerUseProtseqEpEx 函式時,會忽略與動態端點相關聯的原則部分,因為埠是在端點本身指定。
 

傳回值

價值 意義
RPC_S_OK
呼叫成功。
RPC_S_PROTSEQ_NOT_SUPPORTED
此主機上不支援通訊協議順序。
RPC_S_INVALID_RPC_PROTSEQ
通訊協議順序無效。
RPC_S_INVALID_ENDPOINT_FORMAT
端點格式無效。
RPC_S_OUT_OF_MEMORY
系統記憶體不足。
RPC_S_DUPLICATE_ENDPOINT
端點是重複的。
RPC_S_INVALID_SECURITY_DESC
安全性描述元無效。
 
注意 如需有效錯誤碼的清單,請參閱 RPC 傳回值
 

言論

RpcServerUseProtseqEpEx 的參數和效果RpcServerUseProtseqEp。 差異在於原則 參數 ,可讓您在端點上設定特定原則。 將 RPC_POLICY 結構的 NICFlags 字段設定為零,可讓這個擴充函式與原始 RpcServerUseProtseqEp 搭配 ncacn_ip_tcpncadg_ip_udp 傳輸使用時。

伺服器應用程式會呼叫 RpcServerUseProtseqEpEx,以向 RPC 運行時間連結庫註冊一個通訊協議順序。 透過每個通訊協議順序註冊,RpcServerUseProtseqEpEx 包含指定的端點地址資訊。

若要接收遠端過程調用要求,伺服器必須向 RPC 執行時間連結庫註冊至少一個通訊協定序列。 伺服器應用程式可以多次呼叫此例程,以註冊其他通訊協定序列和端點。 針對伺服器註冊的每個通訊協定序列,RPC 運行時間連結庫會建立一或多個端點,讓伺服器接收遠端過程調用要求。 RPC 執行時間連結庫會為每個通訊協定序列建立不同的端點。 不過,程式中的每個介面都可以透過任何端點存取。 如需詳細資訊,請參閱撰寫安全的 RPC 用戶端或伺服器。

針對 MaxCalls,應用程式所提供的值只是提示。 RPC 運行時間或 Windows Sockets 提供者可能會覆寫值。 例如,在 Windows XP 或 Windows 2000 Professional 上,此值限製為 5。 會忽略大於5的值,並改用5。 在 Windows Server 2003 和 Windows 2000 Server 上,將會接受此值。

應用程式必須小心,才能在 maxCalls 中傳遞合理的值。 伺服器、進階伺服器或 Datacenter Server 上的大值可能會導致使用大量的非分頁集區內存。 使用太小的值也是不利的,因為它可能會導致 TCP SYN 封包在待辦專案佇列耗盡時,從伺服器符合 TCP SYN 封包。 在判斷 maxCalls 的適當值時,應用程式開發人員應平衡記憶體使用量與延展性需求。

當計算機設定為使用選擇性系結時,成功傳回不保證伺服器已為計算機上所有網路介面建立端點。 RPC 運行時間可能不會根據選擇性系結設定來接聽某些網路介面。 此外,如果介面尚未使用 DHCP 接收 IP 位址,則 RPC 伺服器在指派 DHCP 位址之前,不會接聽網路介面。 成功的傳回表示伺服器正在至少接聽一個網路介面;可以透過 RpcServerInqBindings 函式呼叫來取得遠端過程調用的完整系結句柄清單。

如需詳細資訊,請參閱 Server-Side 系結字串系結設定埠配置和選擇性系結登錄,以及 RPC 消息佇列 和 MIDL 參考頁面,訊息ncadg_mq

注意

rpcdce.h 標頭會根據 UNICODE 預處理器常數的定義,將 RpcServerUseProtseqEpEx 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 rpcdce.h (包括 Rpc.h)
連結庫 Rpcrt4.lib
DLL Rpcrt4.dll

另請參閱

RPC_POLICY

RpcServerUseAllProtseqsEx

RpcServerUseAllProtseqsIfEx

RpcServerUseProtseqEx

RpcServerUseProtseqIfEx

撰寫安全 RPC 用戶端或伺服器