RpcServerUseAllProtseqsIfEx 函式 (rpcdce.h)

RpcServerUseAllProtseqsIfEx 函式會指示 RPC 運行時間連結庫使用介面規格中的所有指定通訊協定序列和端點,以接收遠端過程調用。

語法

RPC_STATUS RpcServerUseAllProtseqsIfEx(
  unsigned int  MaxCalls,
  RPC_IF_HANDLE IfSpec,
  void          *SecurityDescriptor,
  PRPC_POLICY   Policy
);

參數

MaxCalls

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

IfSpec

介面,其中包含用來建立系結句柄的通訊協定序列和對應的端點資訊。

SecurityDescriptor

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

Policy

RPC_POLICY 結構的指標,其中包含用來限制動態埠的埠配置旗標,並允許多路計算機選擇性地系結至網路適配器。

傳回值

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

備註

注意 不建議在所有支持的通訊協定序列上接聽,因為它會導致伺服器接聽所有通訊協定序列,包括非主流通訊協定序列。 建議伺服器只接聽 主要 通訊協定序列。
 
RpcServerUseAllProtseqsIfEx 的參數和效果會子系 RpcServerUseAllProtseqsIf 的參數和效果。 差異在於 [ 原則 ] 欄位,可讓您限制動態埠的埠配置,並允許多路計算機選擇性地系結至網路適配器。

RPC_POLICY結構的 NICFlags 欄位設定為零,讓此擴充函式的功能相當於原始 RpcServerUseAllProtseqsIfEx,而伺服器會根據系統登錄中的設定系結至 NIC。 如需登錄設定如何定義可用因特網和內部網路埠的資訊,請參閱 設定埠配置和選擇性系結的登錄

注意只有在使用ncacn_ip_tcpncadg_ip_udp通訊協定順序時,[原則] 字段中的旗標設定才會生效。 對於所有其他通訊協定序列,RPC 運行時間會忽略這些值。
 
伺服器應用程式會呼叫 RpcServerUseAllProtseqsIfEx 向 RPC 運行時間連結庫註冊所有通訊協定序列和 IDL 檔案中提供的相關聯端點地址資訊。

若要接收遠端過程調用要求,伺服器必須至少向 RPC 執行時間連結庫註冊一個通訊協議順序。 針對伺服器註冊的每個通訊協定序列,RPC 運行時間連結庫會建立一或多個端點,讓伺服器接收遠端過程調用要求。 RPC 執行時間連結庫會為每個通訊協定順序建立不同的端點。

注意 使用 RpcServerUseAllProtseqsIfEx 函 式並不會讓伺服器接聽下列通訊協定序列:
 
注意 若要接聽上述任一通訊協定序列,每個序列都必須個別選取。
 
針對 MaxCalls,應用程式所提供的值只是提示。 RPC 執行時間或 Windows 套接字提供者可能會覆寫值。 例如,在 Windows XP 或 Windows 2000 Professional 上,此值限製為 5。 會忽略大於5的值,並改用5。 在 Windows Server 2003 和 Windows 2000 Server 上,將會接受此值。

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

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

若要註冊 IDL 檔案中指定的選取通訊協定序列,伺服器會呼叫 RpcServerUseProtseqIfEx。 如需詳細資訊,請參閱 伺服器端系結

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 rpcdce.h (包含 Rpc.h)
程式庫 Rpcrt4.lib
Dll Rpcrt4.dll

另請參閱

RpcServerUseAllProtseqsEx

RpcServerUseProtseqEpEx

RpcServerUseProtseqEx

RpcServerUseProtseqIfEx