RpcNsMgmtBindingUnexportA 函数 (rpcnsi.h)

RpcNsMgmtBindingUnexport 函数从名称服务数据库中的条目中删除多个绑定句柄和对象。

注意 Windows Vista 及更高版本的操作系统不支持此功能。
 

语法

RPC_STATUS RpcNsMgmtBindingUnexportA(
  unsigned long EntryNameSyntax,
  RPC_CSTR      EntryName,
  RPC_IF_ID     *IfId,
  unsigned long VersOption,
  UUID_VECTOR   *ObjectUuidVec
);

参数

EntryNameSyntax

EntryName的语法。

若要使用注册表值项 HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntax中指定的语法,请提供一个RPC_C_NS_SYNTAX_DEFAULT值。

EntryName

指向从中删除绑定句柄和对象 UUID 的条目的名称的指针。

IfId

指向接口标识的指针。 null 参数值指示绑定句柄不是未导出的,只有对象 UUID 是未导出的。

VersOption

指定 RpcNsMgmtBindingUnexport 函数如何使用 VersMajorVersMinorIfId 参数指向的结构成员。

下表描述了 VersOption 参数的有效值。

VersOption 值 意义
RPC_C_VERS_ALL
无论版本号如何,在 IfId中取消导出接口 UUID 的所有绑定。 对于此值,请为 IfId中的主版本和次要版本指定 0。
RPC_C_VERS_IF_ID
取消导出 IfId 中兼容接口 UUID 的绑定,该绑定的主版本大于或等于 IfId中的次要版本。
RPC_C_VERS_EXACT
取消导出 IfId 中接口 UUID 的绑定,其主要版本和次要版本与 IfId相同。
RPC_C_VERS_MAJOR_ONLY
使用与 IfId 中相同的主版本(忽略次要版本)在 IfId 中取消导出接口 UUID 的绑定。 对于此值,请在 IfId中为次要版本指定 0。
RPC_C_VERS_UPTO
取消导出提供小于或等于指定主版本和次要版本的指定接口 UUID 的绑定。 (例如,如果 IfId 包含 V2.0,并且名称服务数据库条目包含版本 1.3、2.0 和 2.1 的绑定句柄,则 RpcNsMgmtBindingUnexport 函数将取消导出包含版本 1.3 和 2.0 的绑定句柄。

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 返回值
 

言论

RpcNsMgmtBindingUnexport 函数允许管理应用程序从名称服务数据库条目中删除以下项之一:

  • 由接口版本号(主要和次要)限定的指定接口 UUID 的所有绑定句柄
  • 一个或多个资源对象 UUID
  • 绑定句柄和资源对象 UUID
管理应用程序可以在单个调用 rpcNsMgmtBindingUnexport中取消导出接口和对象,也可以单独取消导出它们。 如果 RpcNsMgmtBindingUnexport 找不到指定接口的任何绑定句柄,该函数将返回RPC_S_INTERFACE_NOT_FOUND状态代码,并且不会取消导出对象 UUID(如果有)。

如果找到指定接口的一个或多个绑定句柄且未显示错误,RpcNsMgmtBindingUnexport 取消导出任何指定的对象 UUID。 如果未找到任何指定的对象 UUID,RpcNsMgmtBindingUnexport 返回RPC_S_NOT_ALL_OBJS_UNEXPORTED。

除了调用 RpcNsMgmtBindingUnexport,管理应用程序还应调用 RpcMgmtEpUnregister 函数来注销已注册到终结点映射数据库的服务器。

注意 名称服务数据库设计为相对稳定。 在复制的名称服务中,频繁使用 RpcNsBindingExportRpcNsBindingUnexport 函数会导致名称服务重复删除并替换同一条目,这可能会导致性能问题。
 

注意

rpcnsi.h 标头将 RpcNsMgmtBindingUnexport 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 rpcnsi.h (包括 Rpc.h)
Rpcns4.lib
DLL Rpcns4.dll

另请参阅

RpcMgmtEpUnregister

RpcNsBindingExport

RpcNsBindingUnexport