Compartilhar via


Função RpcServerUseAllProtseqs (rpcdce.h)

A função RpcServerUseAllProtseqs informa à biblioteca de tempo de execução RPC para usar todas as sequências de protocolo com suporte para receber chamadas de procedimento remoto.

Sintaxe

RPC_STATUS RpcServerUseAllProtseqs(
  unsigned int MaxCalls,
  void         *SecurityDescriptor
);

Parâmetros

MaxCalls

Comprimento da fila de pendências para a sequência de protocolo ncacn_ip_tcp . Todas as outras sequências de protocolo ignoram esse parâmetro. Use RPC_C_PROTSEQ_MAX_REQS_DEFAULT para especificar o valor padrão. Consulte Observações.

SecurityDescriptor

Ponteiro para um parâmetro opcional fornecido para o subsistema de segurança. Usado somente para sequências de protocolo ncacn_np e ncalrpc . Todas as outras sequências de protocolo ignoram esse parâmetro. Não é recomendável usar um descritor de segurança no ponto de extremidade para tornar um servidor seguro. Esse parâmetro não aparece na especificação de DCE para essa API.

Valor retornado

Valor Significado
RPC_S_OK
A chamada foi bem-sucedida.
RPC_S_NO_PROTSEQS
Não há sequências de protocolo com suporte.
RPC_S_OUT_OF_MEMORY
Memória suficiente não está disponível.
RPC_S_INVALID_SECURITY_DESC
O descritor de segurança é inválido.
 
Nota Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
 

Comentários

Nota Não é recomendável escutar todas as sequências de protocolo com suporte, pois faz com que o servidor escute todas as sequências de protocolo, incluindo sequências de protocolo não mainstream. É recomendável que os servidores escutem apenas em sequências de protocolo base .
 
Um aplicativo de servidor chama RpcServerUseAllProtseqs para registrar todas as sequências de protocolo com suporte com a biblioteca de tempo de execução RPC. Para receber chamadas de procedimento remoto, um servidor deve registrar pelo menos uma sequência de protocolo com a biblioteca de tempo de execução RPC. Para obter uma lista de sequências de protocolo com suporte do Microsoft RPC, consulte o tópico de referência Associação de cadeia de caracteres.

Para cada sequência de protocolo registrada por um servidor, a biblioteca de tempo de execução RPC cria um ou mais pontos de extremidade por meio dos quais o servidor recebe solicitações de chamada de procedimento remoto. A biblioteca de tempo de execução RPC cria pontos de extremidade diferentes para cada sequência de protocolo. O nome do ponto de extremidade é gerado pelo tempo de execução do RPC ou pelo sistema operacional. Por exemplo, para ncacn_ip_tcp, o número da porta é determinado dinamicamente pelo tempo de execução do RPC, dependendo das configurações de disponibilidade e registro.

Nota O uso da função RpcServerUseAllProtseqs não faz com que o servidor escute as seguintes sequências de protocolo:
 
Nota Para escutar qualquer uma dessas sequências de protocolo, cada sequência deve ser selecionada individualmente.
 
Para MaxCalls, o valor fornecido pelo aplicativo é apenas uma dica. O tempo de execução do RPC ou o provedor do Windows Sockets podem substituir o valor. Por exemplo, no Windows XP ou Windows 2000 Professional, o valor é limitado a 5. Os valores maiores que 5 são ignorados e 5 são usados. No Windows Server 2003 e no Windows 2000 Server, o valor será respeitado.

Os aplicativos devem ter cuidado para passar valores razoáveis em MaxCalls. Valores grandes em Servidor, Servidor Avançado ou Datacenter Server podem fazer com que uma grande quantidade de memória de pool não paginada seja usada. Usar um valor muito pequeno também é desfavorável, pois pode resultar em pacotes TCP SYN sendo atendidos pelo TCP RST do servidor se a fila de pendências se esgotar. Um desenvolvedor de aplicativos deve equilibrar o volume de memória versus os requisitos de escalabilidade ao determinar o valor adequado para MaxCalls.

Quando o computador está configurado para usar a associação seletiva, o retorno bem-sucedido não garante que o servidor tenha criado pontos de extremidade para todos os adaptadores de rede presentes no computador. O tempo de execução do RPC pode não escutar alguns adaptadores de rede, dependendo das configurações de associação seletiva. Além disso, se uma interface ainda não tiver recebido um endereço IP usando DHCP, o servidor RPC não escutará no adaptador de rede até que um endereço DHCP seja atribuído a ele. Um retorno bem-sucedido implica que o servidor está escutando em pelo menos um adaptador de rede; a lista completa dos identificadores de associação sobre os quais as chamadas de procedimento remoto podem ser recebidas podem ser obtidas com uma chamada para a função RpcServerInqBindings .

Para obter mais informações, consulte Associação do lado do servidor. Para registrar seletivamente sequências de protocolo, um servidor chama RpcServerUseProtseq, RpcServerUseProtseqIf ou RpcServerUseProtseqEp.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho rpcdce.h (inclua Rpc.h)
Biblioteca Rpcrt4.lib
DLL Rpcrt4.dll

Confira também

RpcBindingToStringBinding

RpcBindingVectorFree

RpcEpRegister

RpcEpRegisterNoReplace

RpcNsBindingExport

RpcServerInqBindings

RpcServerListen

RpcServerRegisterIf

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf

Gravando um cliente ou servidor RPC seguro