RpcServerRegisterIf3 函式 (rpcdce.h)
RpcServerRegisterIf3 函式會向 RPC 運行時間連結庫註冊介面。
語法
RPC_STATUS RpcServerRegisterIf3(
[in] RPC_IF_HANDLE IfSpec,
[in, optional] UUID *MgrTypeUuid,
[in, optional] RPC_MGR_EPV *MgrEpv,
[in] unsigned int Flags,
[in] unsigned int MaxCalls,
[in] unsigned int MaxRpcSize,
[in, optional] RPC_IF_CALLBACK_FN *IfCallback,
[in, optional] void *SecurityDescriptor
);
參數
[in] IfSpec
MIDL 產生的結構,指出要註冊的介面。
[in, optional] MgrTypeUuid
要與 MgrEpv 參數建立關聯的 UUID 類型指標。 指定 null 參數值 (或 nil UUID) 註冊具有 nil 類型 UUID 的 IfSpec。
[in, optional] MgrEpv
管理員例程的進入點向量 (EPV) 。 若要使用 MIDL 產生的預設 EPV,請指定 Null 值。 如需詳細資訊,請參閱 RPC_MGR_EPV。
[in] Flags
標誌。 如需旗標值的清單,請參閱 介面註冊旗標。
[in] MaxCalls
伺服器可以在 自動接聽 介面上接受的並行遠端過程調用要求數目上限。 MaxCalls 參數僅適用於自動接聽介面,而且不會在非自動接聽的介面上忽略。 RPC 執行時間連結庫會盡最大努力確保伺服器不允許比 MaxCalls 中指定的呼叫數目更多的並行呼叫要求。 實際數目可以更大,而且每個通訊協定序列可能會有所不同。
其他介面上的呼叫是由 RpcServerListen 函式呼叫中指定的全進程 MaxCalls 參數值所控管。
如果並行呼叫數目不相關,您可以使用 RPC_C_LISTEN_MAX_CALLS_DEFAULT來指定預設值,以達到稍微更好的伺服器端效能。 這麼做可減輕 RPC 運行時間環境強制執行不必要的限制。
[in] MaxRpcSize
傳入數據區塊的大小上限,以位元組為單位。 此參數可用來協助防止惡意拒絕服務攻擊。 如果遠端過程調用的數據區塊大於 MaxRpcSize,RPC 運行時間連結庫會拒絕呼叫,並將RPC_S_ACCESS_DENIED錯誤傳送給用戶端。 針對此參數指定 (unsigned int) –1 的值會移除傳入數據區塊大小的限制。 此參數不會影響透過 ncalrpc 通訊協議進行的呼叫。
[in, optional] IfCallback
無回呼的安全性回呼函式或 NULL 。 每個已註冊的介面都可以有不同的回呼函式。 請參閱 RpcServerRegisterIf2 上的。
[in, optional] SecurityDescriptor
用於存取 RPC 介面的安全性描述元。 每個已註冊的介面都可以有不同的安全性描述元。
傳回值
成功時傳回RPC_S_OK。
備註
RpcServerRegisterIf3 函式的參數和效果會擴充 RpcServerRegisterIf2 函式的參數和效果。 差異在於能夠指定安全性描述項來控制已註冊 RPC 介面的存取權。
如果同時指定 SecurityDescriptor 和 IfCallbackFn ,則會先檢查 SecurityDescriptor 中的安全性描述元,並在針對安全性描述元通過的存取檢查之後呼叫 IfCallbackFn 中的回呼。
呼叫具有 SecurityDescriptor 的RpcServerRegisterIf3時,或呼叫 RpcServerRegisterIf、RpcServerRegisterIf2 或 RpcServerRegisterIfEx 來註冊介面時,將會使用預設的安全性描述元。 如果 RPC 伺服器不是 AppContainer 進程,則預設安全性描述元不允許從任何 AppContainer 進程存取介面。 如果 RPC 伺服器是 AppContainer 進程,則預設安全性描述元不允許從其他 AppContainer 進程中的任何進程存取介面。 默認的安全性描述元允許從一般進程存取,包括低完整性進程。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | rpcdce.h (包含 Rpc.h) |
程式庫 | Rpcrt4.lib |
Dll | Rpcrt4.dll |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應