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 。 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 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | rpcdce.h (包含 Rpc.h) |
程式庫 | Rpcrt4.lib |
Dll | Rpcrt4.dll |