共用方式為


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 類型 UUIDIfSpec

[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。

注意 如需有效錯誤碼的清單,請參閱 RPC 傳回值
 

備註

RpcServerRegisterIf3 函式的參數和效果會擴充 RpcServerRegisterIf2 函式的參數和效果。 差異在於能夠指定安全性描述項來控制已註冊 RPC 介面的存取權。

如果同時指定 SecurityDescriptorIfCallbackFn ,則會先檢查 SecurityDescriptor 中的安全性描述元,並在針對安全性描述元通過的存取檢查之後呼叫 IfCallbackFn 中的回呼。

呼叫具有 SecurityDescriptor 的RpcServerRegisterIf3時,或呼叫 RpcServerRegisterIfRpcServerRegisterIf2 或 RpcServerRegisterIfEx 來註冊介面時,將會使用預設的安全性描述元。 如果 RPC 伺服器不是 AppContainer 進程,則預設安全性描述元不允許從任何 AppContainer 進程存取介面。 如果 RPC 伺服器是 AppContainer 進程,則預設安全性描述元不允許從其他 AppContainer 進程中的任何進程存取介面。 默認的安全性描述元允許從一般進程存取,包括低完整性進程。

規格需求

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

另請參閱

註冊介面

RpcGetAuthorizationContextForClient

RpcServerRegisterIf

RpcServerRegisterIf2

RpcServerRegisterIfEx

RpcServerUnregisterIf

RpcServerUnregisterIfEx