RpcNsBindingExportA 函式 (rpcnsi.h)
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 |