다음을 통해 공유


RpcServerInterfaceGroupCreate 함수(rpcdce.h)

RpcServerInterfaceGroupCreate 함수는 서버 애플리케이션에 대한 RPC 서버 인터페이스 그룹을 만듭니다. 이 인터페이스 그룹은 RPC 서버 애플리케이션의 인터페이스, 엔드포인트 및 유휴 속성을 완전히 지정합니다. 일단 만들어지면 애플리케이션에 필요한 대로 인터페이스 그룹을 활성화하고 비활성화할 수 있습니다.

구문

RPC_STATUS RpcServerInterfaceGroupCreate(
  [in]  RPC_INTERFACE_TEMPLATE               *Interfaces,
  [in]  unsigned long                        NumIfs,
  [in]  RPC_ENDPOINT_TEMPLATE                *Endpoints,
  [in]  unsigned long                        NumEndpoints,
  [in]  unsigned long                        IdlePeriod,
  [in]  RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN IdleCallbackFn,
  [in]  void                                 *IdleCallbackContext,
  [out] PRPC_INTERFACE_GROUP                 IfGroup
);

매개 변수

[in] Interfaces

인터페이스 그룹에서 노출하는 인터페이스를 정의하는 RPC_INTERFACE_TEMPLATE 구조체 배열에 대한 포인터입니다.

[in] NumIfs

인터페이스의 요소 수 입니다.

[in] Endpoints

인터페이스 그룹에서 사용하는 엔드포인트를 정의하는 RPC_ENDPOINT_TEMPLATE 구조체 배열에 대한 포인터입니다.

[in] NumEndpoints

엔드포인트의 요소 수입니다.

[in] IdlePeriod

인터페이스 그룹이 유휴 상태가 된 후 RPC 런타임이 유휴 콜백을 호출하기 전에 기다려야 하는 시간(초)입니다. 0은 콜백이 즉시 호출됨을 의미합니다. INFINITE 는 서버 애플리케이션이 인터페이스 그룹의 유휴 상태를 신경 쓰지 않음을 의미합니다.

[in] IdleCallbackFn

IdlePeriod에 지정된 시간 동안 인터페이스 그룹이 유휴 상태이면 RPC 런타임이 호출하는 RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN 콜백입니다. IdlePeriodINFINITE인 경우에만 NULL일 수 있습니다.

[in] IdleCallbackContext

IdleCallbackFn의 유휴 콜백에 전달할 사용자 정의 포인터입니다.

[out] IfGroup

성공하면 새로 만든 인터페이스 그룹에 대한 핸들을 수신하는 RPC_INTERFACE_GROUP 버퍼에 대한 포인터입니다. 이 함수가 실패하면 IfGroup 이 정의되지 않습니다.

반환 값

의미
RPC_S_OK
호출이 성공했습니다.
 
참고 유효한 오류 코드 목록은 RPC 반환 값을 참조하세요.
 

설명

인터페이스 그룹이 유휴 상태가 되면 서버 애플리케이션에 필요에 따라 알림을 받을 수 있습니다. 모든 애플리케이션이 이 기능을 활용할 수 있지만 서비스가 유휴 중지되도록 설정하려는 서비스 개발자를 대상으로 합니다.

IdlePeriod 는 유휴 상태가 빠르게 변경되고 트리거된 서비스의 경우 서비스가 불필요하게 시작 및 중지되지 않도록 하는 경우 RPC 런타임에서 많은 수의 알림을 생성하지 못하도록 방지합니다. 개발자는 서비스 초기화 및 종료 비용, 새 활동이 발생할 예상 빈도 및 이 값을 선택할 때 서비스를 유휴 상태로 유지하는 비용을 고려해야 합니다. 유휴 기간이 낮으면 새 클라이언트 작업이 수행될 때 서비스가 자주 시작 및 중지되는 반면 유휴 기간이 높으면 서비스가 의미 있는 작업을 수행하지 않고 리소스를 소비하게 됩니다.

인터페이스 그룹의 인터페이스는 동일한 그룹의 엔드포인트를 통해서만 호출할 수 있습니다. 인터페이스 그룹에 속하지 않는 인터페이스는 그룹의 일부인 엔드포인트를 통해 호출할 수 없습니다.

RPC 서버 작업이 서버 애플리케이션에 항상 표시되는 것은 아닙니다. 경우에 따라 서버에 대한 열린 연결이 있는 클라이언트만 있으면 오랜 기간 동안 디스패치된 호출이 없더라도 클라이언트를 활성 상태로 유지할 수 있습니다. 서버 애플리케이션은 그룹이 유휴 상태임을 선언하는 RPC 런타임과 마지막 호출이 디스패치된 이후 시간 간의 상관 관계를 사용하지 않아야 합니다.

요구 사항

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

추가 정보

RpcServerInterfaceGroupActivate

RpcServerInterfaceGroupClose

RpcServerInterfaceGroupDeactivate

RpcServerInterfaceGroupInqBindings