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
指示是立即从注册表中删除接口还是等待所有当前调用完成的标志。
指定一个零值以忽略正在进行的调用,并立即从注册表中删除接口。 指定任何非零值以等待所有活动调用完成。
返回值
值 | 含义 |
---|---|
|
调用成功。 |
|
管理程序类型未知。 |
|
接口未知。 |
注解
服务器调用 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都已注销。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | rpcdce.h (包括 Rpc.h) |
Library | Rpcrt4.lib |
DLL | Rpcrt4.dll |