RpcServerUnregisterIf 函数 (rpcdce.h)

RpcServerUnregisterIf 函数从 RPC 运行时库注册表中删除接口。

语法

RPC_STATUS RpcServerUnregisterIf(
  RPC_IF_HANDLE IfSpec,
  UUID          *MgrTypeUuid,
  unsigned int  WaitForCallsToComplete
);

参数

IfSpec

要从注册表中删除的接口。

指定 一个 null 值,以删除以前使用 MgrTypeUuid 参数中指定的类型 UUID 值注册的所有接口。

MgrTypeUuid

指向要从注册表中删除的管理器入口点矢量 (EPV) 的类型 UUID 的指针。 MgrTypeUuid 的值应与调用 RpcServerRegisterIf 函数、RpcServerRegisterIf2 函数或 RpcServerRegisterIfEx 函数中提供的值相同。

指定 一个 null 值,以从注册表中删除所有以前注册的类型 UUID 的 IfSpec 参数中指定的接口。

指定 nil UUID 以从注册表中删除 MIDL 生成的默认管理器 EPV。 在这种情况下,使用非 nil 类型 UUID 注册的所有管理器EPV将保持注册状态。

WaitForCallsToComplete

指示是立即从注册表中删除接口还是等待所有当前调用完成的标志。

指定一个零值以忽略正在进行的调用,并立即从注册表中删除接口。 指定任何非零值以等待所有活动调用完成。

返回值

含义
RPC_S_OK
调用成功。
RPC_S_UNKNOWN_MGR_TYPE
管理程序类型未知。
RPC_S_UNKNOWN_IF
接口未知。
 
注意 有关有效错误代码的列表,请参阅 RPC 返回值
 

注解

服务器调用 RpcServerUnregisterIf 以删除接口与管理器 EPV 之间的关联。 若要指定要在 MgrTypeUuid 参数中删除的管理器 EPV,请提供在调用 RpcServerRegisterIf 时指定的类型 UUID 值。 从注册表中删除该接口后,不再可用于客户端应用程序。

从注册表中删除接口时,RPC 运行时库将停止接受该接口的新调用。 允许完成当前在接口上执行的调用,包括回调。

下表汇总了 RpcServerUnregisterIf 的行为。

IfSpec MgrTypeUuid 行为
null null 从注册表中删除与指定参数关联的管理器 EPV。
null NULL 删除与 IfSpec 参数关联的所有管理器EPV。
NULL null 删除与 MgrTypeUuid 参数关联的所有管理器EPV。
NULL NULL 删除所有经理EPV。 此调用会阻止服务器接收任何新的远程过程调用,因为所有接口的所有管理器EPV都已注销。
 
 
注意 如果 IfSpec 的值为 NULL,则此函数将保持 自动侦听 接口的注册。 必须单独从注册表中删除自动侦听接口。 有关详细信息 ,请参阅 RpcServerRegisterIfEx
 

要求

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

另请参阅

RPC_MGR_EPV

注册接口

RpcServerRegisterIf

RpcServerRegisterIf2

RpcServerRegisterIfEx

RpcServerUnregisterIfEx