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이 반환되지 않음을 나타냅니다.

반환 값

의미
RPC_S_OK
호출이 성공했습니다.
RPC_S_ALREADY_LISTENING
서버가 이미 수신 대기 중입니다.
RPC_S_NO_PROTSEQS_REGISTERED
등록된 프로토콜 시퀀스가 없습니다.
RPC_S_MAX_CALLS_TOO_SMALL
최대 호출 값이 너무 작습니다.
 
참고 유효한 오류 코드 목록은 RPC 반환 값을 참조하세요.
 

설명

서버가 원격 프로시저 호출을 처리할 준비가 되면 서버에서 RpcServerListen 을 호출합니다. RPC를 사용하면 서버가 여러 호출을 동시에 처리할 수 있습니다. MaxCalls 매개 변수는 서버가 실행해야 하는 동시 원격 프로시저 호출의 최대 수를 권장합니다.

MaxCalls 값은 0이 아니어야 하며 MinimumCallThreads보다 커야 합니다. 0x7FFFFFFF보다 큰 값은 예고 없이 0x7FFFFFFF 설정됩니다.

Windows XP/2000: MaxCalls 매개 변수를 RPC_C_LISTEN_MAX_CALLS_DEFAULT 설정하면 상수 정의 값인 1234로 설정하는 대신 동시 원격 프로시저 호출에 대한 제한이 제거됩니다. 최대 동시 호출에 대한 제한을 제거하면 컴퓨터에서 처리할 수 있는 만큼의 동시 원격 프로시저 호출이 허용됩니다. 이 동작을 사용하면 RPC 런타임에서 효율성을 높일 수 있습니다.

서버 애플리케이션은 각 루틴이 별도의 스레드에서 실행되므로 서버 관리자 루틴 간의 동시성 제어를 담당합니다.

DontWait 매개 변수의 값이 0이면 RPC 런타임 라이브러리는 다음 이벤트 중 하나가 발생할 때까지 원격 프로시저 호출(즉, 루틴이 서버 애플리케이션으로 반환되지 않음)을 계속 수신 대기합니다.

수신 중지 요청을 수신하면 RPC 런타임 라이브러리는 등록된 모든 인터페이스에 대한 새 원격 프로시저 호출 수락을 중지합니다. 호출 실행은 콜백을 포함하여 완료할 수 있습니다. 모든 호출이 완료되면 RpcServerListen이 호출자에게 반환됩니다.

DontWait 매개 변수에 0이 아닌 값이 있으면 RpcServerListen은 함수와 연결된 모든 지침을 처리한 직후 서버로 돌아갑니다. RpcMgmtWaitServerListen 함수를 사용하여 일반적으로 RpcServerListen과 연결된 대기 작업을 수행할 수 있습니다.

참고RpcServerListen의 Microsoft RPC 구현에는 DCE 사양에 표시되지 않는 두 개의 추가 매개 변수인 DontWaitMinimumCallThreads가 포함되어 있습니다.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 rpcdce.h(Rpc.h 포함)
라이브러리 Rpcrt4.lib
DLL Rpcrt4.dll

추가 정보

RpcMgmtStopServerListening

RpcMgmtWaitServerListen

RpcServerRegisterIf

RpcServerRegisterIfEx

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf