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 作為其名稱服務資料庫。 這表示授權的匯出專案會保存在名稱服務中,即使在重新開機之後仍會顯示。 未經授權的匯出不會保存。 如需授權和存取控制清單的詳細資訊,請參閱 Platform Software Development Kit (SDK) ) 中的存取控制。
若要匯出介面,伺服器應用程式會使用介面呼叫 RpcNsBindingExport 常式,而伺服器系結會處理用戶端可用來存取伺服器。 伺服器應用程式也會呼叫 RpcNsBindingExport 函式,以公開提供名稱服務資料庫中資源 ( () 物件 UUI (D) 。
伺服器可以在單一呼叫 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 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | rpcnsi.h (包含 Rpc.h) |
程式庫 | Rpcns4.lib |
Dll | Rpcns4.dll |