Freigeben über


Aktivieren eines smarten Clients (Kernelmodus)

Nachdem der KD-Verbindungsserver aktiviert wurde, können Sie einen intelligenten Client auf einem anderen Computer erstellen und eine Debugsitzung starten.

Es gibt zwei Möglichkeiten, einen smarten Client zu starten: durch Starten von KD oder WinDbg mit dem Kernelprotokoll kdsrv oder mithilfe der grafischen WinDbg-Schnittstelle.

Sie müssen das vom KD-Verbindungsserver verwendete Remoteübertragungsprotokoll angeben. Sie können auch das Protokoll für die tatsächliche Kernelverbindung zwischen dem KD-Verbindungsserver und dem Zielcomputer angeben, oder Sie können die Standardeinstellung verwenden.

Die allgemeine Syntax zum Starten eines smarten Clients hängt vom verwendeten Protokoll ab. Es gibt folgende Optionen:

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]

Um die grafische Benutzeroberfläche zum Herstellen einer Verbindung mit einem KD-Verbindungsserver zu verwenden, muss sich WinDbg im ruhenden Modus befinden. Es muss entweder ohne Befehlszeilenparameter gestartet oder die vorherige Debugsitzung beendet worden sein. Wählen Sie die Datei | Menübefehl "Verbindung mit Remotestub herstellen ". Wenn das Dialogfeld Verbindung mit Remotestubserver herstellen angezeigt wird, geben Sie eine der folgenden Zeichenfolgen in das Textfeld Verbindungszeichenfolge ein:

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] 

Alternativ können Sie die Schaltfläche Durchsuchen verwenden, um aktive KD-Verbindungsserver zu suchen.

Die Parameter in den vorherigen Befehlen weisen die folgenden möglichen Werte auf:

Debugger
Dies kann KD oder WinDbg sein.

Server
Dies ist der Netzwerkname oder die IP-Adresse des Computers, auf dem der KD-Verbindungsserver erstellt wurde. Die beiden anfänglichen umgekehrten Schrägstriche (\) sind in der Befehlszeile optional, im Dialogfeld WinDbg jedoch nicht zulässig.

pipe=PipeName
Wenn das NPIPE- oder SPIPE-Protokoll verwendet wird, ist PipeName der Name, der der Pipe beim Erstellen des KD-Verbindungsservers zugewiesen wurde.

Wenn Sie nicht mit einem Konto angemeldet sind, das Zugriff auf den Servercomputer hat, müssen Sie einen Benutzernamen und ein Kennwort angeben. Geben Sie auf dem Clientcomputer in einem Eingabeaufforderungsfenster den folgenden Befehl ein.

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

Dabei ist Server der Name des Servercomputers und UserName der Name eines Kontos, das Zugriff auf den Servercomputer hat.

Wenn Sie dazu aufgefordert werden, geben Sie das Kennwort für UserName ein.

Nachdem dieser Befehl erfolgreich ausgeführt wurde, können Sie einen smarten Client mithilfe von -k kdsrv oder mithilfe der grafischen WinDbg-Benutzeroberfläche aktivieren.

port=Socket
Wenn das TCP- oder SSL-Protokoll verwendet wird, ist Socket die gleiche Socketportnummer, die beim Erstellen des KD-Verbindungsservers verwendet wurde.

clicon
Gibt an, dass der KD-Verbindungsserver versucht, über eine umgekehrte Verbindung eine Verbindung mit dem smarten Client herzustellen. Der Client muss clicon nur verwenden, wenn der Server clicon verwendet. In den meisten Fällen wird der smarte Client vor dem KD-Verbindungsserver gestartet, wenn eine umgekehrte Verbindung verwendet wird.

port=COMPort
Wenn das COM-Protokoll verwendet wird, gibt COMPort den zu verwendenden COM-Port an. Das Präfix "COM" ist optional. Beispielsweise sind sowohl "com2" als auch "2" akzeptabel.

baud=BaudRate
Wenn das COM-Protokoll verwendet wird, sollte BaudRate mit der Baudrate übereinstimmen, die beim Erstellen des KD-Verbindungsservers ausgewählt wurde.

channel=COMChannel
Wenn das COM-Protokoll verwendet wird, sollte COMChannel mit der Kanalnummer übereinstimmen, die beim Erstellen des KD-Verbindungsservers ausgewählt wurde.

proto=Protokoll
Wenn das SSL- oder SPIPE-Protokoll verwendet wird, sollte das Protokoll mit dem sicheren Protokoll übereinstimmen, das beim Erstellen des KD-Verbindungsservers verwendet wurde.

Cert
Wenn das SSL- oder SPIPE-Protokoll verwendet wird, sollten Sie den identischen Parameter certuser=Cert oder machuser=Cert verwenden, der beim Erstellen des KD-Verbindungsservers verwendet wurde.

password=Password
Wenn beim Erstellen des KD-Verbindungsservers ein Kennwort verwendet wurde, muss das Kennwort angegeben werden, um den smarten Client zu erstellen. Es muss mit dem ursprünglichen Kennwort übereinstimmen. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. Wenn das falsche Kennwort angegeben wird, wird in der Fehlermeldung "Fehler 0x80004005" angegeben.

ipversion=6
(Debugtools für Windows 6.6.07 und früher) Erzwingt, dass der Debugger ip-Version 6 anstelle von Version 4 verwendet, wenn TCP zum Herstellen einer Verbindung mit dem Internet verwendet wird. In Windows Vista und höheren Versionen versucht der Debugger, die IP-Version 6 automatisch standardmäßig zu verwenden, sodass diese Option nicht erforderlich ist.

trans=@{ConnectType}
Teilt dem Debugger mit, wie eine Verbindung mit dem Ziel hergestellt werden soll. Die folgenden Kernelverbindungsprotokolle sind zulässig:

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

Informationen zu diesen Protokollen finden Sie unter Getting Setup Up for Debugging. Sie können alle Parameter für diese Protokolle weglassen, z. B. trans=@{com:} , und der Debugger verwendet standardmäßig die Werte, die von den Umgebungsvariablen auf dem Computer angegeben werden, auf dem KdSrv ausgeführt wird.

Optionen
Alle zusätzlichen Befehlszeilenparameter können hier platziert werden. Eine vollständige Liste finden Sie unter Befehlszeilenoptionen .

Da der KD-Verbindungsserver einfach als Gateway für den smarten Client fungiert, entsprechen die zusätzlichen Optionen denen, die Sie verwenden würden, wenn Sie einen Kerneldebugger auf dem Computer starten würden, auf dem KdSrv ausgeführt wird. Die Ausnahme ist jede Option, die einen Pfad angibt, oder der Dateiname wird als Pfad auf dem Computer verwendet, auf dem der smarte Client ausgeführt wird.