共用方式為


rpcNsBindingUnexportA 函式 (rpcnsi.h)

RpcNsBindingUnexport 函式會從 name-service 資料庫中的項目移除介面和對象的系結句柄。

注意 Windows Vista 和更新版本的作業系統不支援此函式。
 

語法

RPC_STATUS RpcNsBindingUnexportA(
  unsigned long EntryNameSyntax,
  RPC_CSTR      EntryName,
  RPC_IF_HANDLE IfSpec,
  UUID_VECTOR   *ObjectUuidVec
);

參數

EntryNameSyntax

EntryName 的語法。

若要使用登錄值專案 HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntax中指定的語法,請提供值 RPC_C_NS_SYNTAX_DEFAULT。

EntryName

要從中移除系結句柄和物件 UUID 的項目名稱指標。

IfSpec

要從名稱服務資料庫移除之系結句柄的介面規格。 null 參數值表示不要取消導出任何系結句柄, (只有物件 UUID 才會取消匯出) 。

ObjectUuidVec

伺服器不再想要提供的物件 UUID 向量指標。 應用程式會建構此向量。 null 值表示沒有物件 UUID 無法匯出, (只有系結句柄才會在未匯出) 。

傳回值

意義
RPC_S_OK
呼叫成功。
RPC_S_INVALID_VERS_OPTION
版本選項無效。
RPC_S_INVALID_NAME_SYNTAX
名稱語法無效。
RPC_S_UNSUPPORTED_NAME_SYNTAX
不支援名稱語法。
RPC_S_INCOMPLETE_NAME
名稱不完整。
RPC_S_ENTRY_NOT_FOUND
找不到 name-service 專案。
RPC_S_NAME_SERVICE_UNAVAILABLE
無法使用名稱服務。
RPC_S_INTERFACE_NOT_FOUND
找不到介面。
RPC_S_NOT_ALL_OBJS_UNEXPORTED
並非所有未導出的物件。
 
注意 如需有效錯誤碼的清單,請參閱 RPC 傳回值
 

備註

RpcNsBindingUnexport 函式可讓伺服器應用程式從名稱服務資料庫專案移除資源的系結句柄和物件 UUID。 伺服器應用程式可以在對 RpcNsBindingUnexport 的單一呼叫中取消匯出指定的介面和物件,也可以將它們分開取消導出。 只有符合介面 UUID 和 IfSpec 參數中主要和次要介面版本號碼的系結句柄未匯出。 使用 RpcNsMgmtBindingUnexport 函式來移除介面的多個版本。

從 Windows 2000 生效,RPC 運行時間環境會使用 Active Directory 作為其名稱服務資料庫。 這表示授權的未匯出專案將會從本機快取和 Active Directory 中移除。 未經授權的未匯出只會從本機快取中移除。 如需授權和 存取控制 清單 的詳細資訊請參閱平臺軟體開發工具包 (SDK) 的安全性一節中的 存取控制。

如果 RpcNsBindingUnexport 找不到指定介面的任何系結句柄,則函式會傳回RPC_S_INTERFACE_NOT_FOUND狀態代碼,而且如果有任何指定,則不會取消導出物件 UUID。

如果找到指定介面的一或多個系結句柄,且未匯出且沒有錯誤, RpcNsBindingUnexport 會取消導出指定的物件 UUID,如果有的話。

如果找不到任何指定的物件 UUID,RpcNsBindingUnexport 會傳回RPC_S_NOT_ALL_OBJS_UNEXPORTED狀態代碼。

除了呼叫 RpcNsBindingUnexport 之外,伺服器也應該呼叫 RpcEpUnregister 函式,以取消註冊先前向本機端點對應資料庫註冊的伺服器端點。

建立之後,即使移除所有系結句柄和 UUID,伺服器專案仍會保存。 伺服器項目必須至少有一個系結句柄存在。 因此,只將 UUID 匯出至不存在的項目沒有任何作用,而且取消匯出所有系結句柄會刪除專案。

使用 RpcNsBindingUnexport judiciously。 若要讓自動啟動的伺服器保持可用,您必須在伺服器進程啟動時,將其系結句柄保留在 name-service 資料庫中。 不過,使用動態系結時,如果您未取消導出系結句柄,Active Directory 可能會變得太大而無法管理。

因此,在呼叫此函式之前,請記住您預期伺服器無法使用的時間長度,以及正在使用中的系結類型。 如果您使用靜態系結,請保留此函式,以供預期伺服器在延長時間內無法使用時保留,例如,從服務中永久移除時。

注意 名稱服務資料庫的設計目的是要相對穩定。 在復寫的名稱服務資料庫中,經常使用 RpcNsBindingExportRpcNsBindingUnexport 函式會導致 name-service 資料庫重複移除和取代相同的專案,而且可能會導致效能問題。
 

注意

rpcnsi.h 標頭會將 RpcNsBindingUnexport 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 rpcnsi.h (包含 Rpc.h)
程式庫 Rpcns4.lib
Dll Rpcns4.dll

另請參閱

RpcEpUnregister

RpcNsBindingExport