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 不會使用此字串來判斷用戶端與哪一個伺服器實例通訊,或用於列舉端點對應資料庫中的專案。
傳回值
值 | 意義 |
---|---|
|
呼叫成功。 |
|
沒有系結。 |
|
系結句柄無效。 |
|
這是作業的系結錯誤類型。 |
備註
RpcEpRegister 函式會在本機主機的 endpoint-map 資料庫中新增或取代專案。 對於符合所提供介面規格、系結句柄和物件 UUID 的現有資料庫專案,此函式會將專案的端點取代為所提供系結句柄中的端點。
伺服器可以使用 RpcEpRegister 和 RpcEpRegisterNoReplace 來註冊端點對應程式資料庫中的專案。 在 Windows 2000 之前,有兩個函式可供伺服器覆寫先前不再執行之伺服器實例左側端點對應程式資料庫中過時的專案。 端點對應程式資料庫會在伺服器停止運作時,自動移除伺服器實例所註冊的專案。 不過,基於安全性考慮,不允許伺服器取代另一部伺服器的端點對應程序專案。 因此, RpcEpRegister 和 RpcEpRegisterNoReplace 執行的功能大致相同。
伺服器應用程式會呼叫 RpcEpRegister ,以註冊呼叫下列任一函式所指定的端點:
- RpcServerUseAllProtseqs
- RpcServerUseProtseq
- RpcServerUseProtseqEp
- RpcServerUseAllProtseqsIf
- RpcServerUseProtseqIf
如果使用通訊協定序列而不指定端點,RPC 運行時間連結庫會自動產生動態端點。 在此情況下,伺服器可以呼叫 RpcServerInqBindings ,後面接著 RpcEpRegister ,讓多個用戶端可以自行使用。 否則,只有啟動伺服器的用戶端才知道自動啟動的伺服器。每個新增至 endpoint-map 資料庫的元素邏輯都包含下列專案:
- 介面 UUID
- 介面版本 (主要和次要)
- 系結句柄
- 物件 UUID (選擇性)
- 註釋 (選擇性)
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | rpcdce.h (包含 Rpc.h) |
程式庫 | Rpcrt4.lib |
Dll | Rpcrt4.dll |