共用方式為


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 函式且所有遠端呼叫都已完成之前,不應該傳回。

傳回值

意義
RPC_S_OK
呼叫成功。
RPC_S_ALREADY_LISTENING
伺服器已經接聽。
RPC_S_NO_PROTSEQS_REGISTERED
沒有已註冊的通訊協定序列。
RPC_S_MAX_CALLS_TOO_SMALL
呼叫值上限太小。
 
注意 如需有效錯誤碼的清單,請參閱 RPC 傳回值
 

備註

當伺服器準備好處理遠端過程調用時,伺服器會呼叫 RpcServerListen 。 RPC 可讓伺服器同時處理多個呼叫。 MaxCalls 參數建議伺服器應該執行的並行遠端過程調用數目上限。

MaxCalls 值不應為零,而且應該大於 MinimumCallThreads。 大於0x7FFFFFFF的值會設定為0x7FFFFFFF,而不需注意。

Windows XP/2000: MaxCalls 參數設定為 RPC_C_LISTEN_MAX_CALLS_DEFAULT會移除並行遠端過程調用的限制,而不是將它設定為 1234 的常數定義值。 拿掉並行呼叫上限的限制,允許電腦所能處理的並行遠端過程調用數目。 此行為可提升 RPC 運行時間的效率。

伺服器應用程式負責伺服器管理員例程之間的並行控制,因為每個例程都會在不同的線程中執行。

DontWait 參數值為零時,RPC 執行時間連結庫會繼續接聽遠端過程調用 (,也就是例程不會傳回伺服器應用程式) ,直到發生下列其中一個事件為止:

收到停止接聽要求之後,RPC 運行時間連結庫會停止接受所有已註冊介面的新遠端過程調用。 允許執行呼叫完成,包括回呼。 所有呼叫完成後, RpcServerListen 會返回呼叫端。

當 DontWait 參數具有非零值時,RpcServerListen 會在處理與函式相關聯的所有指令之後立即返回伺服器。 您可以使用 RpcMgmtWaitServerListen 函式來執行通常與 RpcServerListen 相關聯的等候作業。

注意RpcServerListen 的 Microsoft RPC 實作包含兩個未出現在 DCE 規格中的其他參數:DontWaitMinimumCallThreads
 

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 rpcdce.h (包含 Rpc.h)
程式庫 Rpcrt4.lib
Dll Rpcrt4.dll

另請參閱

RpcMgmtStopServerListening

RpcMgmtWaitServerListen

RpcServerRegisterIf

RpcServerRegisterIfEx

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf