Activación de un servidor de conexión KD
El servidor de conexión KD que se incluye en Herramientas de depuración para Windows se denomina KdSrv (kdsrv.exe). Para activar un servidor de conexión KD, abra una ventana del símbolo del sistema con privilegios elevados (Ejecutar como administrador) y escriba el comando kdsrv .
Nota Puede activar un servidor de conexión KD sin tener privilegios elevados y los clientes de depuración podrán conectarse al servidor. Sin embargo, los clientes no podrán detectar un servidor de conexión KD a menos que se haya activado con privilegios elevados. Para obtener información sobre cómo detectar servidores de depuración, consulte Búsqueda de servidores de conexión KD.
KdSrv admite varios protocolos de transporte: canalización con nombre (NPIPE), TCP, puerto COM, canalización segura (SPIPE) y capa de sockets seguros (SSL).
La sintaxis de la línea de comandos KdSrv depende del protocolo usado. Existen las siguientes opciones:
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]
Los parámetros de los comandos anteriores tienen los siguientes valores posibles:
pipe= PipeName
Cuando se usa el protocolo NPIPE o SPIPE, PipeName es una cadena que servirá como nombre de la canalización. Cada nombre de canalización debe identificar un servidor de procesos único. Si intenta reutilizar un nombre de canalización, recibirá un mensaje de error. PipeName no debe contener espacios ni comillas. PipeName puede incluir un código numérico con formato printf-style, como %x o %d. Esto se reemplazará por el identificador de proceso de KdSrv. Un segundo código de este tipo se reemplazará por el identificador de subproceso de KdSrv.
port= Enchufe
Cuando se usa el protocolo TCP o SSL, Socket es el número de puerto de socket.
También es posible especificar un intervalo de puertos separados por dos puntos. KdSrv comprobará cada puerto de este intervalo para ver si es gratis. Si encuentra un puerto libre y no se produce ningún error, se creará el servidor de conexión KD. El cliente inteligente tendrá que especificar el puerto real que se usa para conectarse al servidor. Para determinar el puerto real, use cualquiera de los métodos descritos en Buscar servidores de conexión KD; cuando se muestre este servidor de conexión KD, el puerto estará seguido de dos números separados por dos puntos. El primer número será el puerto real utilizado; se puede omitir el segundo. Por ejemplo, si el puerto se especificó como puerto=51:60 y el puerto 53 se usó realmente, los resultados de la búsqueda mostrarán "port=53:60". (Si usa el parámetro clicon para establecer una conexión inversa, el cliente inteligente puede especificar un intervalo de puertos de esta manera, mientras que el servidor de conexión KD debe especificar el puerto real usado).
clicon= Cliente
Cuando se usa el protocolo TCP o SSL y se especifica el parámetro clicon se abrirá una conexión inversa. Esto significa que el servidor de conexión KD intentará conectarse al cliente inteligente, en lugar de permitir que el cliente inicie el contacto. Esto puede ser útil si tiene un firewall que impide una conexión en la dirección habitual. El cliente especifica el nombre de red o la dirección IP del equipo en el que existe el cliente inteligente o se creará. Las dos barras diagonales inversas iniciales (\) son opcionales.
Dado que el servidor de conexión KD busca un cliente específico, no puede conectar varios clientes al servidor si usa este método. Si la conexión se rechaza o se interrumpe, tendrá que reiniciar el servidor de procesos. Un servidor de conexión KD de conexión inversa no aparecerá cuando alguien use la opción de línea de comandos -QR para mostrar todos los servidores activos.
Nota Cuando se usa clicon , es mejor iniciar el cliente inteligente antes de crear el servidor de conexión KD, aunque también se permite el orden habitual (servidor antes del cliente).
port= COMPort
Cuando se usa el protocolo COM, COMPort especifica el puerto COM que se va a usar. El prefijo "COM" es opcional, por ejemplo, tanto "com2" como "2" son aceptables.
baud= BaudRate
Cuando se usa el protocolo COM, BaudRate especifica la velocidad de baudios a la que se ejecutará la conexión. Se permite cualquier velocidad de baudios compatible con el hardware.
channel= COMChannel
Si se usa el protocolo COM, COMChannel especifica el canal COM que se usará para comunicarse con el cliente de depuración. Puede ser cualquier valor entre 0 y 254, inclusive. Puede usar un único puerto COM para varias conexiones mediante números de canal diferentes. (Esto es diferente del uso de puertos COM para un cable de depuración, en esa situación no se pueden usar canales dentro de un puerto COM).
proto= Protocolo
Si se usa el protocolo SSL o SPIPE, el protocolo especifica el protocolo de canal seguro (Canal S). Puede ser cualquiera de las cadenas tls1, pct1, ssl2 o ssl3.
Cert
Si se usa el protocolo SSL o SPIPE, Cert especifica el certificado. Puede ser el nombre del certificado o la huella digital del certificado (la cadena de dígitos hexadecimales proporcionada por el complemento del certificado). Si se usa la sintaxis certuser=Cert , el depurador buscará el certificado en el almacén del sistema (el almacén predeterminado). Si se usa la sintaxis machuser=Cert , el depurador buscará el certificado en el almacén de la máquina. El certificado especificado debe admitir la autenticación del servidor.
escondido
Impide que el servidor de conexión KD aparezca cuando alguien usa la opción de línea de comandos -QR para mostrar todos los servidores activos.
password= Contraseña
Requiere un cliente inteligente para proporcionar la contraseña especificada para conectarse al servidor de conexión KD. Contraseña puede ser cualquier cadena alfanumérica, de hasta doce caracteres de longitud.
Advertencia El uso de una contraseña con el protocolo TCP, NPIPE o COM solo ofrece una pequeña cantidad de protección, ya que la contraseña no está cifrada. Cuando se usa una contraseña con el protocolo SSL o SPIPE, se cifra. Si desea establecer una sesión remota segura, debe usar el protocolo SSL o SPIPE.
ipversion=6
(Herramientas de depuración para Windows 6.6.07 y versiones anteriores) Obliga al depurador a usar la versión 6 de IP en lugar de la versión 4 cuando se usa TCP para conectarse a Internet. En Windows Vista y versiones posteriores, el depurador intenta establecer el valor predeterminado automático en la versión 6 de IP, lo que hace que esta opción sea innecesaria.
IcfEnable
Hace que el depurador habilite las conexiones de puerto necesarias para la comunicación de canalización TCP o con nombre cuando el firewall de conexión a Internet está activo. De forma predeterminada, el firewall de conexión a Internet deshabilita los puertos usados por estos protocolos. Cuando se usa IcfEnable con una conexión TCP, el depurador hace que Windows abra el puerto especificado por el parámetro Socket. Cuando se usa IcfEnable con una conexión de canalización con nombre, el depurador hace que Windows abra los puertos usados para canalizaciones con nombre (puertos 139 y 445). El depurador no cierra estos puertos una vez finalizada la conexión.