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 |
---|---|---|
|
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. |
|
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. |
|
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. |
|
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 |
Tópicos relacionados