共用方式為


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
找不到名稱服務專案。
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 明智地使用。 若要讓自動啟動的伺服器保持可用,您必須在啟動伺服器進程時,將其系結句柄保留在 name-service 資料庫中。 不過,使用動態系結時,如果您未取消導出系結句柄,Active Directory 可能會變得如此龐大,無法管理。

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

Note Name-service 資料庫的設計為相對穩定。 在復寫的名稱服務資料庫中,經常使用 RpcNsBindingExportRpcNsBindingUnexport 函式,會導致 name-service 資料庫重複移除並取代相同的專案,並可能導致效能問題。
 

注意

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

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 rpcnsi.h (包括 Rpc.h)
連結庫 Rpcns4.lib
DLL Rpcns4.dll

另請參閱

RpcEpUnregister

RpcNsBindingExport