Attivazione di un client intelligente (modalità kernel)

Dopo aver attivato il server di connessione KD, è possibile creare un client intelligente in un altro computer e avviare una sessione di debug.

Esistono due modi per avviare un client intelligente: avviando KD o WinDbg con il protocollo kernel kdsrv o usando l'interfaccia grafica WinDbg.

È necessario specificare il protocollo di trasferimento remoto usato dal server di connessione KD. È anche possibile specificare il protocollo per la connessione kernel effettiva tra il server di connessione KD e il computer di destinazione oppure è possibile usare il valore predefinito.

La sintassi generale per l'avvio di un client intelligente dipende dal protocollo usato. È possibile scegliere tra le seguenti opzioni:

Debugger -k kdsrv:server=@{npipe:server=Server,pipe=PipeName[,password=Password]},trans=@{ConnectType} [Options]

Debugger -k kdsrv:server=@{tcp:server=Server,port=Socket[,password=Password][,ipversion=6]},trans=@{ConnectType} [Options]

Debugger -k kdsrv:server=@{tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6]},trans=@{ConnectType} [Options]

Debugger -k kdsrv:server=@{com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password]},trans=@{ConnectType} [Options]

Debugger -k kdsrv:server=@{spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password]},trans=@{ConnectType} [Options]

Debugger -k kdsrv:server=@{ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password]},trans=@{ConnectType} [Options]

Debugger -k kdsrv:server=@{ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password]},trans=@{ConnectType} [Options]

Per usare l'interfaccia grafica per connettersi a un server di connessione KD, WinDbg deve essere in modalità inattiva. Deve essere stato avviato senza parametri della riga di comando oppure deve aver terminato la sessione di debug precedente. Selezionare il file | Connettersi al comando di menu Stub remoto. Quando viene visualizzata la finestra di dialogo Connetti al server Stub remoto, immettere una delle stringhe seguenti nella casella di testo Stringa di connessione :

npipe:server=Server,pipe=PipeName[,password=Password] 

tcp:server=Server,port=Socket[,password=Password][,ipversion=6] 

tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] 

com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] 

spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] 

ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] 

ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password] 

In alternativa, è possibile usare il pulsante Sfoglia per individuare i server di connessione KD attivi.

I parametri nei comandi precedenti hanno i valori possibili seguenti:

Debugger
Può trattarsi di KD o WinDbg.

Server
Si tratta del nome di rete o dell'indirizzo IP del computer in cui è stato creato il server di connessione KD. Le due barre rovesciata iniziali (\) sono facoltative nella riga di comando, ma non sono consentite nella finestra di dialogo WinDbg.

pipe= PipeName
Se viene usato il protocollo NPIPE o SPIPE, PipeName è il nome assegnato alla pipe al momento della creazione del server di connessione KD.

Se non si è connessi al computer client con un account che ha accesso al computer server, è necessario specificare un nome utente e una password. Nel computer client, in una finestra del prompt dei comandi, immettere il comando seguente.

net use \\Server\ipc$ /user:UserName

dove Server è il nome del computer server e UserName è il nome di un account che ha accesso al computer server.

Quando richiesto, immettere la password per UserName.

Al termine di questo comando, è possibile attivare un client intelligente usando -kdsrv o usando l'interfaccia grafica WinDbg.

port= Presa
Se viene usato il protocollo TCP o SSL, Socket è lo stesso numero di porta socket usato al momento della creazione del server di connessione KD.

clicon
Specifica che il server di connessione KD tenterà di connettersi al client intelligente tramite una connessione inversa. Il client deve usare clicon se e solo se il server utilizza clicon. Nella maggior parte dei casi, il client intelligente viene avviato prima del server di connessione KD quando viene usata una connessione inversa.

port= COMPort
Se viene utilizzato il protocollo COM, COMPort specifica la porta COM da utilizzare. Il prefisso "COM" è facoltativo, ad esempio "com2" e "2" sono accettabili.

baud= BaudRate
Se viene usato il protocollo COM, BaudRate deve corrispondere alla velocità di baud scelta al momento della creazione del server di connessione KD.

channel= COMChannel
Se viene usato il protocollo COM, COMChannel deve corrispondere al numero di canale scelto al momento della creazione del server di connessione KD.

proto= Protocollo
Se si usa il protocollo SSL o SPIPE, il protocollo deve corrispondere al protocollo sicuro usato quando è stato creato il server di connessione KD.

Cert
Se si usa il protocollo SSL o SPIPE, è consigliabile usare il parametro certuser=Cert o routeser=Cert usato al momento della creazione del server di connessione KD.

password= Parola d’ordine
Se è stata usata una password al momento della creazione del server di connessione KD, è necessario specificare Password per creare il client intelligente. Deve corrispondere alla password originale. Per le password viene fatta distinzione tra maiuscole e minuscole. Se viene specificata la password errata, il messaggio di errore specifica "Errore 0x80004005".

ipversion=6
(Solo strumenti di debug per Windows 6.6.07 e versioni precedenti) Forza il debugger a usare IP versione 6 anziché la versione 4 quando si usa TCP per connettersi a Internet. In Windows Vista e versioni successive il debugger tenta di impostare automaticamente l'impostazione predefinita su IP versione 6, rendendo questa opzione non necessaria.

trans=@{ ConnectType }
Indica al debugger come connettersi alla destinazione. Sono consentiti i protocolli di connessione kernel seguenti:

com:port=ComPort,baud=BaudRate 
1394:channel=1394Channel[,symlink=1394Protocol] 
usb2:targetname=String 
com:pipe,port=\\VMHost\pipe\PipeName[,resets=0][,reconnect]
com:modem 

Per informazioni su questi protocolli, vedere Getting Set Up for Debugging. È possibile omettere uno qualsiasi dei parametri per questi protocolli, ad esempio trans=@{com:} e il debugger verrà impostato per impostazione predefinita sui valori specificati dalle variabili di ambiente nel computer in cui è in esecuzione KdSrv.

Opzioni
Eventuali parametri aggiuntivi della riga di comando possono essere inseriti qui. Per un elenco completo, vedere Opzioni della riga di comando.

Poiché il server di connessione KD funge semplicemente da gateway per il client intelligente, le opzioni aggiuntive saranno le stesse usate se si avviasse un debugger del kernel nel computer in cui è in esecuzione KdSrv. L'eccezione a questa è qualsiasi opzione che specifica un percorso o un nome file verrà accettata come percorso nel computer in cui è in esecuzione il client intelligente.