RpcServerUseAllProtseqsEx 函式 (rpcdce.h)
RpcServerUseAllProtseqsEx函式會告知 RPC 執行時間程式庫使用所有支援的通訊協定序列來接收遠端程序呼叫。
語法
RPC_STATUS RpcServerUseAllProtseqsEx(
unsigned int MaxCalls,
void *SecurityDescriptor,
PRPC_POLICY Policy
);
參數
MaxCalls
ncacn_ip_tcp通訊協定序列的待辦專案佇列長度。 所有其他通訊協定序列都會忽略此參數。 使用RPC_C_PROTSEQ_MAX_REQS_DEFAULT來指定預設值。 請參閱<備註>。
SecurityDescriptor
為安全性子系統提供的選擇性參數指標。 僅用於 ncacn_np 和 ncalrpc 通訊協定序列。 所有其他通訊協定序列都會忽略此參數。 不建議在端點上使用安全描述項,以便讓伺服器安全。 此參數不會出現在此 API 的 DCE 規格中。
Policy
RPC_POLICY結構的指標,可讓您覆寫動態通訊埠配置的預設原則,以及 (NIC (NIC) 在多路連線電腦上 (多張網路卡) 。
傳回值
值 | 意義 |
---|---|
|
呼叫成功。 |
|
不支援的通訊協定序列。 |
|
沒有足夠的記憶體可用。 |
|
安全性描述項無效。 |
備註
將RPC_POLICY結構的NICFlags欄位設定為零,可讓此擴充 API 功能相當於原始RpcServerUseAllProtseqs,而伺服器會根據系統登錄中的設定系結至 NIC。 如需登錄設定如何定義可用網際網路和內部網路埠的資訊,請參閱 設定埠配置和選擇性系結的登錄。
針對伺服器註冊的每個通訊協定序列,RPC 執行時間程式庫會建立一或多個端點,讓伺服器接收遠端程序呼叫要求。 RPC 執行時間程式庫會為每個通訊協定順序建立不同的端點。 端點名稱是由 RPC 執行時間或作業系統所產生。 例如,針對 ncacn_ip_tcp,埠號碼會根據可用性和登錄設定,動態地由 RPC 執行時間決定。
應用程式必須小心,才能在 MaxCalls中傳遞合理的值。 伺服器、進階伺服器或 Datacenter Server 上的大值可能會導致使用大量的非分頁集區記憶體。 使用太小的值也不適合使用,因為如果待辦專案佇列耗盡,可能會導致來自伺服器的 TCP RST 符合 TCP SYN 封包。 當判斷 MaxCalls的適當值時,應用程式開發人員應該平衡記憶體使用量與延展性需求。
當電腦設定為使用選擇性系結時,成功傳回不保證伺服器已為電腦上存在的所有網路介面建立端點。 RPC 執行時間可能無法接聽某些網路介面,視選擇性系結設定而定。 此外,如果介面尚未使用 DHCP 收到 IP 位址,則 RPC 伺服器在指派 DHCP 位址之前不會接聽網路介面。 成功的傳回表示伺服器正在至少接聽一個網路介面;可以透過 RpcServerInqBindings 函式呼叫來取得遠端程序呼叫的完整系結控制碼清單。
若要選擇性地註冊通訊協定序列,伺服器會呼叫 RpcServerUseProtseqEx、 RpcServerUseProtseqIfEx或 RpcServerUseProtseqEpEx。 如需伺服器通常會在註冊通訊協定序列之後呼叫的常式描述,請參閱 伺服器端 系結。
需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | rpcdce.h (包含 Rpc.h) |
程式庫 | Rpcrt4.lib |
Dll | Rpcrt4.dll |