Configurando o Registro para Alocações de Porta e Associação Seletiva

A partir do Windows 2000, um utilitário no Kit de Recursos do Windows chamado Rpccfg.exe deve ser usado para definir associações. Para obter mais informações, consulte o Kit de Recursos do Windows para obter a versão apropriada do sistema operacional.

Para versões do Windows anteriores ao Windows 2000, as chaves do Registro na tabela a seguir especificam os padrões do sistema para alocação de porta dinâmica e para associação a NICs em computadores multihomed. Primeiro, você deve criar essas chaves e especificar as configurações apropriadas.

O uso da função RpcServerUseProtseqEx afeta essas configurações. Os desenvolvedores devem estar familiarizados com as configurações do Registro explicadas nesta seção e a função RpcServerUseProtseqEx ao gerenciar alocações de porta. Um exemplo com três aplicativos hipotéticos segue a tabela abaixo e ilustra como essas configurações e a função RpcServerUseProtseqEx interoperam.

Se uma chave estiver ausente ou se contiver um valor inválido, toda a configuração será marcada como inválida e todas as chamadas RpcServerUseProtseq*por ncacn_ip_tcp ou ncadg_ip_udp falharão.

Observação

As portas alocadas para um processo permanecem alocadas até que esse processo seja iniciado. Se todas as portas disponíveis estiverem em uso, a função retornará RPC_S_OUT_OF_RESOURCES.

 

Chave de porta Tipo de dados Descrição
HKEY_LOCAL_MACHINE   Software      Microsoft         Rpc            Internet               Ports
REG_MULTI_SZ Especifica um conjunto de intervalos de portas IP que consistem em todas as portas disponíveis na Internet ou todas as portas não disponíveis na Internet. Cada cadeia de caracteres representa uma única porta ou um conjunto inclusivo de portas (por exemplo, 1000-1050, 1984). Se alguma entrada estiver fora do intervalo de 0 a 65535 ou se qualquer cadeia de caracteres não puder ser interpretada, o tempo de execução do RPC tratará toda a configuração como inválida.
HKEY_LOCAL_MACHINE   Software      Microsoft         Rpc            Internet               PortsInternetAvailable
REG_SZ Y ou N (não diferencia maiúsculas de minúsculas). Se Y, as portas listadas na chave Portas serão todas as portas disponíveis para a Internet nesse computador. Se N, as portas listadas na chave Portas serão todas aquelas portas que não estão disponíveis para a Internet.
HKEY_LOCAL_MACHINE   Software      Microsoft         Rpc            Internet               UseInternetPorts
REG_SZ Y ou N (não diferencia maiúsculas de minúsculas). Especifica a política padrão do sistema. Se Y, os processos que usam o padrão serão atribuídos portas do conjunto de portas disponíveis para a Internet, conforme definido acima. Se N, os processos que usam o padrão serão atribuídos portas do conjunto de portas somente intranet.
HKEY_LOCAL_MACHINE   System      CurrentControlSet         Services            Rpc               Linkage                  Bind
REG_MULTI_SZ Lista os nomes de dispositivo de todas as NICs nas quais associar por padrão (por exemplo, \Device\AMDPCN1). Se a chave não existir, o servidor será associado a todas as NICs. Se a chave existir, o servidor será associado às NICs especificadas na chave, a menos que o campo NICFlags seja definido como RPC_C_BIND_TO_ALL_NICS. Se a chave tiver um valor nulo (""), a configuração será marcada como inválida e todas as chamadas para RpcServerUseProtseq* por ncacn_ip_tcp ou ncadg_ip_udp falharão.

 

A tabela a seguir ilustra como três aplicativos de exemplo são afetados pelas configurações definidas na tabela anterior e como as configurações aplicadas usando a função RpcServerUseProtseqEx também são afetadas.

Neste exemplo, três aplicativos hipotéticos são considerados:

  • InternetApp: este aplicativo destina-se à exposição à Internet e especificou RPC_C_USE_INTERNET_PORT no membro EndpointFlags da estrutura RPC_POLICY passada para a função RpcServerUseProtseqEx .
  • LocalApp: este aplicativo não se destina à exposição à Internet e especificou RPC_C_USE_INTRANET_PORT no membro EndpointFlags da estrutura RPC_POLICY passada para a função RpcServerUseProtseqEx .
  • DefaultApp: este aplicativo especifica zero no membro EndpointFlags da estrutura RPC_POLICY passada para a função RpcServerUseProtseqEx .

A tabela a seguir explica o impacto que essas configurações têm com base nos valores especificados nas entradas do Registro explicadas na tabela anterior. Para considerações de formatação, os seguintes códigos são atribuídos:

PIA = Valor da chave portsInternetAvailable

UIP = Valor da chave UseInternetPorts

O valor da chave Portas, para este exemplo, é 5000-5100 para cada entrada.

Aplicativo PIA UIP Result
InternetApp S S Usa portas entre 5000 e 5100
LocalApp S S Usa uma porta fora do intervalo 5000-5100
DefaultApp S S Usa portas entre 5000 e 5100
InternetApp S N Usa portas entre 5000 e 5100
LocalApp S N Usa uma porta fora do intervalo 5000-5100
DefaultApp S N Usa uma porta fora do intervalo 5000-5100
InternetApp N S Usa uma porta fora do intervalo 5000-5100
LocalApp N S Usa portas entre 5000 e 5100
DefaultApp N S Usa uma porta fora do intervalo 5000-5100
InternetApp N N Usa uma porta fora do intervalo 5000-5100
LocalApp N N Usa portas entre 5000 e 5100
DefaultApp N N Usa portas entre 5000 e 5100

 

RPC_POLICY

RpcServerUseAllProtseqsEx

RpcServerUseAllProtseqsIfEx

RpcServerUseProtseqEx

RpcServerUseProtseqEpEx

RpcServerUseProtseqIfEx

Ncacn_ip_tcp

ncadg_ip_udp