共用方式為


rpcEpRegister 函式 (rpcdce.h)

RpcEpRegister 函式會在本機端點對應資料庫中新增或取代伺服器地址資訊。

語法

RPC_STATUS RpcEpRegister(
  RPC_IF_HANDLE      IfSpec,
  RPC_BINDING_VECTOR *BindingVector,
  UUID_VECTOR        *UuidVector,
  RPC_CSTR           Annotation
);

參數

IfSpec

向本機端點對應資料庫註冊的介面。

BindingVector

系結句柄向量的指標,伺服器可透過此向量接收遠端過程調用。

UuidVector

伺服器所提供之物件 UUID 向量的指標。 伺服器應用程式會建構此向量。Null 自變數值表示沒有要註冊的物件 UUID。

Annotation

套用至每個新增至本機端點對應資料庫的跨產品專案之字元字串批註的指標。 字串長度最多可達 64 個字元,包括 Null 終止字元。 如果沒有批注字串,請指定 null 值或以 null 結尾的字串 (“\0”) 。

註釋字串僅供應用程式用於資訊。 RPC 不會使用此字串來判斷用戶端與哪一個伺服器實例通訊,或用於列舉端點對應資料庫中的專案。

傳回值

意義
RPC_S_OK
呼叫成功。
RPC_S_NO_BINDINGS
沒有系結。
RPC_S_INVALID_BINDING
系結句柄無效。
RPC_S_WRONG_KIND_OF_BINDING
這是作業的系結錯誤類型。
 
注意 如需有效錯誤碼的清單,請參閱 RPC 傳回值
 

備註

RpcEpRegister 函式會在本機主機的 endpoint-map 資料庫中新增或取代專案。 對於符合所提供介面規格、系結句柄和物件 UUID 的現有資料庫專案,此函式會將專案的端點取代為所提供系結句柄中的端點。

伺服器可以使用 RpcEpRegister 和 RpcEpRegisterNoReplace 來註冊端點對應程式資料庫中的專案。 在 Windows 2000 之前,有兩個函式可供伺服器覆寫先前不再執行之伺服器實例左側端點對應程式資料庫中過時的專案。 端點對應程式資料庫會在伺服器停止運作時,自動移除伺服器實例所註冊的專案。 不過,基於安全性考慮,不允許伺服器取代另一部伺服器的端點對應程序專案。 因此, RpcEpRegisterRpcEpRegisterNoReplace 執行的功能大致相同。

伺服器應用程式會呼叫 RpcEpRegister ,以註冊呼叫下列任一函式所指定的端點:

如果伺服器也導出至 name-service 資料庫,伺服器會使用相同的 IfSpecBindingVectorUuidVector 值呼叫 RpcEpRegister,並在呼叫 RpcNsBindingExport 函式時使用。

如果使用通訊協定序列而不指定端點,RPC 運行時間連結庫會自動產生動態端點。 在此情況下,伺服器可以呼叫 RpcServerInqBindings ,後面接著 RpcEpRegister ,讓多個用戶端可以自行使用。 否則,只有啟動伺服器的用戶端才知道自動啟動的伺服器。每個新增至 endpoint-map 資料庫的元素邏輯都包含下列專案:

  • 介面 UUID
  • 介面版本 (主要和次要)
  • 系結句柄
  • 物件 UUID (選擇性)
  • 註釋 (選擇性)
RpcEpRegister 會從 IfSpecBindingVectorUuidVector 參數建立交叉乘積,並將跨產品中的每個元素新增為端點對應資料庫中的個別註冊。

規格需求

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

另請參閱

RpcBindingFromStringBinding

RpcEpRegisterNoReplace

RpcEpUnregister

RpcNsBindingExport

RpcServerInqBindings

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf