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 콜백입니다. IdlePeriod가 INFINITE인 경우에만 NULL일 수 있습니다.
[in] IdleCallbackContext
IdleCallbackFn의 유휴 콜백에 전달할 사용자 정의 포인터입니다.
[out] IfGroup
성공하면 새로 만든 인터페이스 그룹에 대한 핸들을 수신하는 RPC_INTERFACE_GROUP 버퍼에 대한 포인터입니다. 이 함수가 실패하면 IfGroup 이 정의되지 않습니다.
반환 값
값 | 의미 |
---|---|
|
호출이 성공했습니다. |
설명
인터페이스 그룹이 유휴 상태가 되면 서버 애플리케이션에 필요에 따라 알림을 받을 수 있습니다. 모든 애플리케이션이 이 기능을 활용할 수 있지만 서비스가 유휴 중지되도록 설정하려는 서비스 개발자를 대상으로 합니다.
IdlePeriod 는 유휴 상태가 빠르게 변경되고 트리거된 서비스의 경우 서비스가 불필요하게 시작 및 중지되지 않도록 하는 경우 RPC 런타임에서 많은 수의 알림을 생성하지 못하도록 방지합니다. 개발자는 서비스 초기화 및 종료 비용, 새 활동이 발생할 예상 빈도 및 이 값을 선택할 때 서비스를 유휴 상태로 유지하는 비용을 고려해야 합니다. 유휴 기간이 낮으면 새 클라이언트 작업이 수행될 때 서비스가 자주 시작 및 중지되는 반면 유휴 기간이 높으면 서비스가 의미 있는 작업을 수행하지 않고 리소스를 소비하게 됩니다.
인터페이스 그룹의 인터페이스는 동일한 그룹의 엔드포인트를 통해서만 호출할 수 있습니다. 인터페이스 그룹에 속하지 않는 인터페이스는 그룹의 일부인 엔드포인트를 통해 호출할 수 없습니다.
RPC 서버 작업이 서버 애플리케이션에 항상 표시되는 것은 아닙니다. 경우에 따라 서버에 대한 열린 연결이 있는 클라이언트만 있으면 오랜 기간 동안 디스패치된 호출이 없더라도 클라이언트를 활성 상태로 유지할 수 있습니다. 서버 애플리케이션은 그룹이 유휴 상태임을 선언하는 RPC 런타임과 마지막 호출이 디스패치된 이후 시간 간의 상관 관계를 사용하지 않아야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | rpcdce.h(Rpc.h 포함) |
라이브러리 | Rpcrt4.lib |
DLL | Rpcrt4.dll |
추가 정보
RpcServerInterfaceGroupActivate