RpcServerUseAllProtseqsIf 函式 (rpcdce.h)
RpcServerUseAllProtseqsIf 函式會指示 RPC 運行時間連結庫使用介面規格中的所有指定通訊協定序列和端點,以接收遠端過程調用。
語法
RPC_STATUS RpcServerUseAllProtseqsIf(
unsigned int MaxCalls,
RPC_IF_HANDLE IfSpec,
void *SecurityDescriptor
);
參數
MaxCalls
ncacn_ip_tcp通訊協定序列的待辦專案佇列長度。 所有其他通訊協定序列都會忽略此參數。 使用 RPC_C_PROTSEQ_MAX_REQS_DEFAULT 來指定預設值。 請參閱<備註>。
IfSpec
介面,其中包含用來建立系結句柄的通訊協定序列和對應的端點資訊。
SecurityDescriptor
為安全性子系統提供的選擇性參數指標。 僅用於 ncacn_np 和 ncalrpc 通訊協定序列。 所有其他通訊協定序列都會忽略此參數。 不建議在端點上使用安全性描述元,以確保伺服器安全。 此參數不會出現在此 API 的 DCE 規格中。
傳回值
值 | 意義 |
---|---|
|
呼叫成功。 |
|
不支援的通訊協定序列。 |
|
端點格式。 |
|
系統記憶體不足。 |
|
端點是重複的。 |
|
安全性描述元無效。 |
|
RPC 通訊協定序列無效。 |
備註
若要接收遠端過程調用要求,伺服器必須向 RPC 執行時間連結庫註冊至少一個通訊協定序列。 針對伺服器註冊的每個通訊協定序列,RPC 運行時間連結庫會建立一或多個端點,讓伺服器接收遠端過程調用要求。 RPC 執行時間連結庫會為每個通訊協定序列建立不同的端點。
應用程式必須小心,才能在 MaxCalls 中傳遞合理的值。 伺服器、進階伺服器或 Datacenter Server 上的大值可能會導致使用大量的非分頁集區內存。 使用太小的值也不適合使用,因為如果待辦專案佇列耗盡,可能會導致 TCP RST 從伺服器符合 TCP SYN 封包。 應用程式開發人員在判斷 MaxCalls的適當值時,應該平衡記憶體使用量與延展性需求。
當計算機設定為使用選擇性系結時,成功傳回不保證伺服器已為計算機上存在的所有網路介面建立端點。 RPC 運行時間可能不會接聽某些網路介面,視選擇性系結設定而定。 此外,如果介面尚未使用 DHCP 接收 IP 位址,RPC 伺服器就不會在網路介面上接聽,直到將 DHCP 位址指派給它為止。 成功傳回表示伺服器正在至少接聽一個網路介面;可以透過 對 RpcServerInqBindings 函式的呼叫來取得遠端過程調用的完整系結句柄清單。
如需詳細資訊,請參閱 伺服器端系結。 若要註冊 IDL 檔案中指定的選取通訊協定序列,伺服器會呼叫 RpcServerUseProtseqIf。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | rpcdce.h (包含 Rpc.h) |
程式庫 | Rpcrt4.lib |
Dll | Rpcrt4.dll |