Compartilhar via


Função RpcServerInterfaceGroupCreateW (rpcdce.h)

A função RpcServerInterfaceGroupCreate cria um grupo de interface do servidor RPC para o aplicativo de servidor. Esse grupo de interfaces especifica totalmente as interfaces, os pontos de extremidade e as propriedades ociosas de um aplicativo de servidor RPC. Depois de criado, um grupo de interfaces pode ser ativado e desativado conforme o aplicativo requer.

Sintaxe

RPC_STATUS RpcServerInterfaceGroupCreateW(
  [in]  RPC_INTERFACE_TEMPLATEW              *Interfaces,
  [in]  unsigned long                        NumIfs,
  [in]  RPC_ENDPOINT_TEMPLATEW               *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
);

Parâmetros

[in] Interfaces

Um ponteiro para uma matriz de estruturas de RPC_INTERFACE_TEMPLATE que definem as interfaces expostas pelo grupo de interfaces.

[in] NumIfs

O número de elementos em interfaces .

[in] Endpoints

Um ponteiro para uma matriz de estruturas de RPC_ENDPOINT_TEMPLATE que definem os pontos de extremidade usados pelo grupo de interfaces.

[in] NumEndpoints

O número de elementos em pontos de extremidade .

[in] IdlePeriod

O período de tempo em segundos após o grupo de interface ficar ocioso que o runtime do RPC deve aguardar antes de invocar o retorno de chamada ocioso. 0 significa que o retorno de chamada é invocado imediatamente. INFINITE significa que o aplicativo de servidor não se importa com o estado ocioso do grupo de interfaces.

[in] IdleCallbackFn

Um retorno de chamada RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN que o runtime do RPC invocará quando o grupo de interfaces ficar ocioso pelo período de tempo determinado em IdlePeriod. Pode ser NULL somente se IdlePeriod for INFINITE .

[in] IdleCallbackContext

Um ponteiro definido pelo usuário a ser passado para o retorno de chamada ocioso em IdleCallbackFn .

[out] IfGroup

Se bem-sucedido, um ponteiro para um buffer de RPC_INTERFACE_GROUP que recebe o identificador para o grupo de interface recém-criado. Se essa função falhar, IfGroup será indefinido.

Valor de retorno

Valor Significado
RPC_S_OK
A chamada foi bem-sucedida.
 
Observação Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
 

Observações

Opcionalmente, um aplicativo de servidor pode ser notificado quando um grupo de interface fica ocioso. Embora qualquer aplicativo possa aproveitar essa funcionalidade, ele é direcionado para desenvolvedores de serviços que gostariam de permitir que seu serviço parasse ocioso.

IdlePeriod impede que o runtime do RPC produza um grande número de notificações se o estado ocioso muda rapidamente e, no caso de serviços disparados, ajuda o serviço a evitar iniciar e parar desnecessariamente. Os desenvolvedores devem considerar o custo de inicialização e desligamento do serviço, a frequência esperada com a qual a nova atividade ocorrerá e o custo de manter o serviço ocioso ao selecionar esse valor. Um período de ociosidade baixo fará com que o serviço inicie e pare com frequência à medida que uma nova atividade do cliente ocorre, enquanto um período ocioso alto fará com que o serviço consuma recursos sem executar um trabalho significativo.

Interfaces em um grupo de interfaces só podem ser chamadas em pontos de extremidade do mesmo grupo. Interfaces que não fazem parte de um grupo de interfaces não podem ser chamadas por pontos de extremidade que fazem parte de um grupo.

A atividade do servidor RPC nem sempre é visível para o aplicativo do servidor. Em alguns casos, simplesmente ter um cliente com uma conexão aberta com o servidor pode mantê-lo ativo mesmo que nenhuma chamada tenha sido enviada por um longo período de tempo. Os aplicativos de servidor não devem depender de nenhuma correlação entre o runtime do RPC declarando que o grupo está ocioso e o tempo desde que a última chamada foi expedida.

Nota

O cabeçalho rpcdce.h define RpcServerInterfaceGroupCreate como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 8 [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2012 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho rpcdce.h (inclua Rpc.h)
biblioteca Rpcrt4.lib
de DLL Rpcrt4.dll

Consulte também

RpcServerInterfaceGroupActivate

RpcServerInterfaceGroupClose

RpcServerInterfaceGroupDeactivate

RpcServerInterfaceGroupInqBindings