RpcNsMgmtBindingUnexportW 函数 (rpcnsi.h)

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

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

语法

RPC_STATUS RpcNsMgmtBindingUnexportW(
  unsigned long EntryNameSyntax,
  RPC_WSTR      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 函数如何使用 IfId 参数指向的结构的 VersMajorVersMinor 成员。

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

VersOption 值 含义
RPC_C_VERS_ALL
IfId 中取消导出接口 UUID 的所有绑定,而不考虑版本号。 对于此值,请在 IfId 中为主要版本和次要版本指定 0。
RPC_C_VERS_IF_ID
取消导出 IfId 中具有相同主版本且次要版本大于或等于 IfId 中次要版本的兼容接口 UUID 绑定。
RPC_C_VERS_EXACT
在 IfId 中,使用与 IfId 中相同的主版本和次要版本取消导出接口 UUID 绑定。
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 [仅限桌面应用]
目标平台 Windows
标头 rpcnsi.h (包括 Rpc.h)
Library Rpcns4.lib
DLL Rpcns4.dll

另请参阅

RpcMgmtEpUnregister

RpcNsBindingExport

RpcNsBindingUnexport