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에서 반환을 제어하는 플래그입니다. 0이 아닌 값은 함수 처리를 완료한 직후 RpcServerListen 이 반환되어야 했음을 나타냅니다. 값이 0이면 RpcMgmtStopServerListening 함수가 호출되고 모든 원격 호출이 완료될 때까지 RpcServerListen이 반환되지 않음을 나타냅니다.
반환 값
값 | 의미 |
---|---|
|
호출이 성공했습니다. |
|
서버가 이미 수신 대기 중입니다. |
|
등록된 프로토콜 시퀀스가 없습니다. |
|
최대 호출 값이 너무 작습니다. |
설명
서버가 원격 프로시저 호출을 처리할 준비가 되면 서버에서 RpcServerListen 을 호출합니다. RPC를 사용하면 서버가 여러 호출을 동시에 처리할 수 있습니다. MaxCalls 매개 변수는 서버가 실행해야 하는 동시 원격 프로시저 호출의 최대 수를 권장합니다.
MaxCalls 값은 0이 아니어야 하며 MinimumCallThreads보다 커야 합니다. 0x7FFFFFFF보다 큰 값은 예고 없이 0x7FFFFFFF 설정됩니다.
Windows XP/2000: MaxCalls 매개 변수를 RPC_C_LISTEN_MAX_CALLS_DEFAULT 설정하면 상수 정의 값인 1234로 설정하는 대신 동시 원격 프로시저 호출에 대한 제한이 제거됩니다. 최대 동시 호출에 대한 제한을 제거하면 컴퓨터에서 처리할 수 있는 만큼의 동시 원격 프로시저 호출이 허용됩니다. 이 동작을 사용하면 RPC 런타임에서 효율성을 높일 수 있습니다.
서버 애플리케이션은 각 루틴이 별도의 스레드에서 실행되므로 서버 관리자 루틴 간의 동시성 제어를 담당합니다.
DontWait 매개 변수의 값이 0이면 RPC 런타임 라이브러리는 다음 이벤트 중 하나가 발생할 때까지 원격 프로시저 호출(즉, 루틴이 서버 애플리케이션으로 반환되지 않음)을 계속 수신 대기합니다.
- 서버 애플리케이션의 관리자 루틴 중 하나는 RpcMgmtStopServerListening을 호출합니다.
- 클라이언트는 서버가 RpcMgmtStopServerListening을 호출하도록 지시하는 서버에서 제공하는 원격 프로시저를 호출합니다.
- 클라이언트는 서버에 대한 바인딩 핸들을 사용하여 RpcMgmtStopServerListening 을 호출합니다.
DontWait 매개 변수에 0이 아닌 값이 있으면 RpcServerListen은 함수와 연결된 모든 지침을 처리한 직후 서버로 돌아갑니다. RpcMgmtWaitServerListen 함수를 사용하여 일반적으로 RpcServerListen과 연결된 대기 작업을 수행할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | rpcdce.h(Rpc.h 포함) |
라이브러리 | Rpcrt4.lib |
DLL | Rpcrt4.dll |