Share via


Ativando um servidor de conexão KD

O servidor de conexão KD incluído nas Ferramentas de Depuração para Windows é chamado de KdSrv (kdsrv.exe). Para ativar um servidor de conexão KD, abra uma janela do Prompt de Comando com privilégios elevados (Executar como Administrador) e insira o comando kdsrv .

Nota Você pode ativar um servidor de conexão KD sem ter privilégios elevados e os clientes de depuração poderão se conectar ao servidor. No entanto, os clientes não poderão descobrir um servidor de conexão KD, a menos que ele tenha sido ativado com privilégios elevados. Para obter informações sobre como descobrir servidores de depuração, consulte Pesquisando servidores de conexão KD.

O KdSrv dá suporte a vários protocolos de transporte: pipe nomeado (NPIPE), TCP, porta COM, pipe seguro (SPIPE) e SSL (camada de soquete seguro).

A sintaxe da linha de comando KdSrv depende do protocolo usado. Existem as seguintes opções:

kdsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] 

kdsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] 

kdsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] 

kdsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] 

kdsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] 

kdsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] 

kdsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] 

Os parâmetros nos comandos anteriores têm os seguintes valores possíveis:

pipe=PipeName
Quando o protocolo NPIPE ou SPIPE é usado, PipeName é uma cadeia de caracteres que servirá como o nome do pipe. Cada nome de pipe deve identificar um servidor de processo exclusivo. Se você tentar reutilizar um nome de pipe, receberá uma mensagem de erro. PipeName não deve conter espaços ou aspas. PipeName pode incluir um código de formato de estilo printf numérico, como %x ou %d. Isso será substituído pela ID do processo do KdSrv. Um segundo código desse tipo será substituído pela ID do thread do KdSrv.

port=Socket
Quando o protocolo TCP ou SSL é usado, Socket é o número da porta do soquete.

Também é possível especificar um intervalo de portas separadas por dois-pontos. O KdSrv marcar cada porta nesse intervalo para ver se ela é gratuita. Se encontrar uma porta gratuita e nenhum erro ocorrer, o servidor de conexão KD será criado. O cliente inteligente precisará especificar a porta real que está sendo usada para se conectar ao servidor. Para determinar a porta real, use qualquer um dos métodos descritos em Pesquisa de servidores de conexão KD; quando esse servidor de conexão KD for exibido, a porta será seguida por dois números separados por dois-pontos. O primeiro número será a porta real usada; o segundo pode ser ignorado. Por exemplo, se a porta foi especificada como port=51:60 e a porta 53 foi realmente usada, os resultados da pesquisa mostrarão "port=53:60". (Se você estiver usando o parâmetro clicon para estabelecer uma conexão inversa, o cliente inteligente poderá especificar um intervalo de portas dessa maneira, enquanto o servidor de conexão KD deverá especificar a porta real usada.)

clicon=Client
Quando o protocolo TCP ou SSL for usado e o parâmetro clicon for especificado, uma conexão inversa será aberta. Isso significa que o servidor de conexão KD tentará se conectar ao cliente inteligente, em vez de permitir que o cliente inicie o contato. Isso pode ser útil se você tiver um firewall que esteja impedindo uma conexão na direção usual. O cliente especifica o nome da rede ou o endereço IP do computador no qual o cliente inteligente existe ou será criado. As duas barras iniciais (\) são opcionais.

Como o servidor de conexão KD está procurando um cliente específico, você não pode conectar vários clientes ao servidor se usar esse método. Se a conexão for recusada ou interrompida, você precisará reiniciar o servidor de processo. Um servidor de conexão KD de conexão reversa não aparecerá quando alguém usar a opção de linha de comando -QR para exibir todos os servidores ativos.

Nota Quando a clicon é usada, é melhor iniciar o cliente inteligente antes que o servidor de conexão KD seja criado, embora a ordem usual (servidor antes do cliente) também seja permitida.

port=COMPort
Quando o protocolo COM é usado, o COMPort especifica a porta COM a ser usada. O prefixo "COM" é opcional , por exemplo, "com2" e "2" são aceitáveis.

baud=BaudRate
Quando o protocolo COM é usado, BaudRate especifica a taxa de baud na qual a conexão será executada. Qualquer taxa de baud compatível com o hardware é permitida.

channel=COMChannel
Se o protocolo COM for usado, COMChannel especificará o canal COM a ser usado na comunicação com o cliente de depuração. Esse pode ser qualquer valor entre 0 e 254, inclusive. Você pode usar uma única porta COM para várias conexões usando números de canal diferentes. (Isso é diferente do uso de portas COM para um cabo de depuração -- nessa situação, você não pode usar canais dentro de uma porta COM.)

proto=Protocol
Se o protocolo SSL ou SPIPE for usado, Protocol especificará o protocolo Canal Seguro (Canal S). Pode ser qualquer uma das cadeias de caracteres tls1, pct1, ssl2 ou ssl3.

Cert
Se o protocolo SSL ou SPIPE for usado, Cert especificará o certificado. Pode ser o nome do certificado ou a impressão digital do certificado (a cadeia de caracteres de dígitos hexadecimal fornecidos pelo snapin do certificado). Se a sintaxe certuser=Cert for usada, o depurador procurará o certificado no repositório do sistema (o repositório padrão). Se a sintaxe machuser=Cert for usada, o depurador procurará o certificado no repositório de computadores. O certificado especificado deve dar suporte à autenticação do servidor.

Escondidos
Impede que o servidor de conexão KD apareça quando alguém usa a opção de linha de comando -QR para exibir todos os servidores ativos.

password=Password
Requer que um cliente inteligente forneça a senha especificada para se conectar ao servidor de conexão KD. A senha pode ser qualquer cadeia de caracteres alfanumérica, com até doze caracteres de comprimento.

Aviso Usar uma senha com protocolo TCP, NPIPE ou COM oferece apenas uma pequena quantidade de proteção, pois a senha não está criptografada. Quando uma senha é usada com o protocolo SSL ou SPIPE, ela é criptografada. Se você quiser estabelecer uma sessão remota segura, deverá usar o protocolo SSL ou SPIPE.

ipversion=6
(Ferramentas de depuração para Windows 6.6.07 e somente anteriores) Força o depurador a usar o IP versão 6 em vez da versão 4 ao usar o TCP para se conectar à Internet. No Windows Vista e versões posteriores, o depurador tenta fazer o padrão automático para o IP versão 6, tornando essa opção desnecessária.

IcfEnable
Faz com que o depurador habilite as conexões de porta necessárias para tcp ou comunicação de pipe nomeado quando o Firewall de Conexão da Internet está ativo. Por padrão, o Firewall de Conexão com a Internet desabilita as portas usadas por esses protocolos. Quando IcfEnable é usado com uma conexão TCP, o depurador faz com que o Windows abra a porta especificada pelo parâmetro Socket . Quando IcfEnable é usado com uma conexão de pipe nomeada, o depurador faz com que o Windows abra as portas usadas para pipes nomeados (portas 139 e 445). O depurador não fecha essas portas após o término da conexão.