RpcNsBindingExport 函式會為伺服器建立名稱服務資料庫專案,其中包含多個系結句柄和多個物件。
語法
RPC_STATUS RpcNsBindingExportA(
unsigned long EntryNameSyntax,
RPC_CSTR 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(s) 物件。
伺服器可以在單一呼叫中匯出介面和物件,RpcNsBindingExport,也可以個別導出它們。如果 EntryName 所指定的 name-service 資料庫專案不存在,RpcNsBindingExport 嘗試建立它。 在此情況下,伺服器應用程式必須具有建立項目的許可權。除了呼叫 RpcNsBindingExport之外,呼叫 RpcServerUseAllProtseqs 或 RpcServerUseProtseq 函式的伺服器也必須呼叫 RpcEpRegister 或 RpcEpRegisterNoReplace來向本機端點對應資料庫註冊。
伺服器不需要將其任何介面導出至 name-service 資料庫。 當伺服器未匯出時,只有私下知道伺服器系結資訊的用戶端可以存取其介面。 例如,具有建構字串系結所需資訊的用戶端可以呼叫 RpcBindingFromStringBinding,以建立系結句柄,以便對伺服器進行遠端過程調用。
呼叫 RpcNsBindingExport之前,伺服器必須執行下列動作:
從 RpcServerInqBindings 函式傳回的向量會成為 RpcNsBindingExport的 Binding 參數。 若要防止匯出系結,請將選取的向量項目設定為 Null 值。如果伺服器多次匯出至相同的名稱服務資料庫專案,則第二個和後續的呼叫會 RpcNsBindingExport 在該數據與伺服器專案中的系結資訊不同時新增系結資訊和物件 UUID。 現有的數據不會從專案中移除。
若要從 name-service 資料庫移除系結句柄和物件 UUID,伺服器應用程式會呼叫 RpcNsBindingUnexport 函式。
伺服器項目必須至少有一個系結句柄存在。 因此,僅將 UUID 匯出至非現有項目沒有任何作用,而且取消匯出所有系結句柄會刪除專案。
注意
rpcnsi.h 標頭會根據 UNICODE 預處理器常數的定義,將 RpcNsBindingExport 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
| 要求 | 價值 |
|---|---|
| 最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
| 支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
| 目標平臺 | 窗戶 |
| 標頭 | rpcnsi.h (包括 Rpc.h) |
| 連結庫 | Rpcns4.lib |
| DLL | Rpcns4.dll |