rpcNsBindingExportW 函式 (rpcnsi.h)
RpcNsBindingExport 函式會建立名稱服務資料庫專案,其中包含多個系結句柄和伺服器的多個物件。
語法
RPC_STATUS RpcNsBindingExportW(
unsigned long EntryNameSyntax,
RPC_WSTR EntryName,
RPC_IF_HANDLE IfSpec,
RPC_BINDING_VECTOR *BindingVec,
UUID_VECTOR *ObjectUuidVec
);
參數
EntryNameSyntax
EntryName 的語法。
若要使用登錄值專案 HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntax中指定的語法,請提供值 RPC_C_NS_SYNTAX_DEFAULT。
EntryName
要匯出系結句柄和物件 UUID 的項目名稱指標。 您無法提供 Null 或空字串。 用戶端和伺服器都必須使用相同的項目名稱。
IfSpec
存根產生的數據結構,指定要導出的介面。 null 值表示沒有系結句柄可匯出 (只會匯出物件 UUID,) 並忽略 BindingVec 。
BindingVec
要導出的伺服器系結指標。 null 值表示沒有系結句柄可以導出, (只會匯出物件 UUID) 。
ObjectUuidVec
伺服器所提供之物件 UUID 向量的指標。 伺服器應用程式會建構此向量。 null 值表示沒有物件 UUID 可匯出, (只有系結句柄才會匯出) 。
傳回值
值 | 意義 |
---|---|
|
呼叫成功。 |
|
沒有可導出的動作。 |
|
系結句柄無效。 |
|
這是作業的系結錯誤類型。 |
|
名稱語法無效。 |
|
不支援名稱語法。 |
|
名稱不完整。 |
|
沒有名稱服務作業的許可權。 |
|
無法使用名稱服務。 |
備註
RpcNsBindingExport 函式可讓伺服器應用程式公開提供名稱服務資料庫中的介面,以供任何用戶端應用程式使用。
從 Windows 2000 生效,RPC 運行時間環境會使用 Active Directory 作為其名稱服務資料庫。 這表示授權的導出專案會保存在名稱服務中,即使在重新啟動之後仍會顯示。 未經授權的導出不會保存。 如需授權和 存取控制 清單 的詳細資訊,請參閱平臺軟體開發工具包 (SDK) 的安全性一節中的 存取控制。
若要匯出介面,伺服器應用程式會使用 介面呼叫 RpcNsBindingExport 例程,而伺服器系結會處理用戶端可用來存取伺服器。 伺服器應用程式也會呼叫 RpcNsBindingExport 函式,以公開提供物件 UUID (資源 () 名稱服務資料庫中提供的資源 () 。
伺服器可以在對 RpcNsBindingExport 的單一呼叫中匯出介面和物件,也可以個別導出它們。如果 EntryName 指定的 name-service 資料庫專案不存在, RpcNsBindingExport 會嘗試建立它。 在此情況下,伺服器應用程式必須具有建立項目的許可權。除了呼叫 RpcNsBindingExport 之外,呼叫 RpcServerUseAllProtseqs 或 RpcServerUseProtseq 函式的伺服器也必須呼叫 RpcEpRegister 或 RpcEpRegisterNoReplace 向本機端點對應資料庫註冊。
伺服器不需要將其任何介面導出至 name-service 資料庫。 當伺服器未匯出時,只有私下知道伺服器系結資訊的用戶端可以存取其介面。 例如,建構字串系結所需資訊的用戶端可以呼叫 RpcBindingFromStringBinding 來建立系結句柄,以便對伺服器進行遠端過程調用。
呼叫 RpcNsBindingExport 之前,伺服器必須執行下列動作:
- 呼叫下列其中一個函式,向本機 RPC 運行時間連結庫註冊一或多個通訊協定序列:
- 呼叫 RpcServerInqBindings 函式以取得伺服器系結的清單。
如果伺服器多次匯出至相同的名稱服務資料庫專案,當該數據與伺服器專案中的系結資訊不同時, 對 RpcNsBindingExport 的第二個和後續呼叫會新增系結資訊和物件 UUID。 現有的數據不會從專案中移除。
若要從 name-service 資料庫移除系結句柄和物件 UUID,伺服器應用程式會呼叫 RpcNsBindingUnexport 函式。
伺服器項目必須至少有一個系結句柄存在。 因此,只將 UUID 匯出至不存在的項目沒有任何作用,而且取消匯出所有系結句柄會刪除專案。
注意
rpcnsi.h 標頭會將 RpcNsBindingExport 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | rpcnsi.h (包含 Rpc.h) |
程式庫 | Rpcns4.lib |
Dll | Rpcns4.dll |