rpcServerListen 函数 (rpcdce.h)
RpcServerListen 函数向 RPC 运行时库发出信号,以侦听远程过程调用。 此函数不会影响自动侦听接口;如果需要该功能,请使用 RpcServerRegisterIfEx 。
语法
RPC_STATUS RpcServerListen(
unsigned int MinimumCallThreads,
unsigned int MaxCalls,
unsigned int DontWait
);
参数
MinimumCallThreads
RPC 运行时的提示,指定应在给定服务器中创建和维护的最小调用线程数。 此值只是一个提示,在不同版本的 Windows 中以不同的方式解释。 在 Windows XP 中,此值是 RPC 运行时创建的每个线程池中以前创建的线程数。 应用程序应为此参数指定一个参数,并将线程创建决策延迟到 RPC 运行时。
MaxCalls
建议服务器可以执行的并发远程过程调用的最大数目。 为了提高性能,RPC 运行时库将 MaxCalls 参数解释为建议的限制,而不是绝对上限。
使用 RPC_C_LISTEN_MAX_CALLS_DEFAULT 指定默认值。
DontWait
控制 RpcServerListen 返回的标志。 非零值指示 RpcServerListen 应在完成函数处理后立即返回。 值为零指示 RpcServerListen 在调用 RpcMgmtStopServerListening 函数并完成所有远程调用之前,不应返回 RpcServerListen。
返回值
值 | 含义 |
---|---|
|
调用成功。 |
|
服务器已在侦听。 |
|
未注册任何协议序列。 |
|
最大调用值太小。 |
注解
当服务器准备好处理远程过程调用时,服务器会调用 RpcServerListen 。 RPC 允许服务器同时处理多个调用。 MaxCalls 参数建议服务器应执行的最大并发远程过程调用数。
MaxCalls 值不应为零,并且应大于 MinimumCallThreads。 大于 0x7FFFFFFF 的值设置为0x7FFFFFFF,恕不另行通知。
Windows XP/2000: 将 MaxCalls 参数设置为 RPC_C_LISTEN_MAX_CALLS_DEFAULT 将消除并发远程过程调用的限制,而不是将其设置为常量定义的值 1234。 删除最大并发调用数限制允许计算机可以处理的并发远程过程调用数。 此行为可以提高 RPC 运行时的效率。
服务器应用程序负责服务器管理器例程之间的并发控制,因为每个例程都在单独的线程中执行。
当 DontWait 参数的值为零时,RPC 运行时库将继续侦听远程过程调用 (也就是说,在发生以下事件之一之前,例程不会返回到服务器应用程序) :
- 服务器应用程序的管理器例程之一调用 RpcMgmtStopServerListening。
- 客户端调用服务器提供的远程过程,该过程指示服务器调用 RpcMgmtStopServerListening。
- 客户端使用服务器的绑定句柄调用 RpcMgmtStopServerListening 。
当 DontWait 参数具有非零值时, RpcServerListen 将在处理与函数关联的所有指令后立即返回到服务器。 可以使用 RpcMgmtWaitServerListen 函数执行通常与 RpcServerListen 关联的等待操作。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | rpcdce.h (包括 Rpc.h) |
Library | Rpcrt4.lib |
DLL | Rpcrt4.dll |