Aktivieren eines intelligenten 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 intelligenten Client zu starten: durch Starten von KD oder WinDbg mit dem Kernelprotokoll kdsrvoder 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.
Wichtig
Bei der Verwendung des Remotedebuggings gibt es wichtige Sicherheitsaspekte. Weitere Informationen, einschließlich Informationen zum Aktivieren des sicheren Modus, finden Sie unter Sicherheit beim Remotedebugging und Sicherheitsüberlegungen für Windows-Debuggingtools.
Die allgemeine Syntax für das Starten eines smarten Clients hängt vom verwendeten Protokoll ab. Die folgenden Optionen sind vorhanden:
Empfohlenen Verbindungsmethoden mit einigen zusätzlichen Sicherheits-
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]
Debugger -k kdsrv:server=@{com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password]},trans=@{ConnectType} [Options]
unsicheren Verbindungsmethoden
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]
Um die grafische Schnittstelle zum Herstellen einer Verbindung mit einem KD-Verbindungsserver verwenden zu können, muss WinDbg im ruhenden Modus sein. Sie muss entweder ohne Befehlszeilenparameter gestartet worden sein oder die vorherige Debugsitzung beendet haben. Wählen Sie die Datei | Herstellen einer Verbindung mit remote stub Menübefehl. Wenn das Dialogfeld Verbindung mit Remote-Stubserver angezeigt wird, geben Sie eine der folgenden Zeichenfolgen in das Textfeld Verbindungszeichenfolge ein:
Empfohlenen Verbindungsmethoden mit einigen zusätzlichen Sicherheits-
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]
com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password]
unsicheren Verbindungsmethoden
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]
Alternativ können Sie die Schaltfläche Durchsuchen verwenden, um aktive KD-Verbindungsserver zu finden.
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 Schrägstriche (\) sind in der Befehlszeile optional, sind aber im Dialogfeld WinDbg nicht zulässig.
pipe=PipeName
Wenn NPIPE- oder SPIPE-Protokoll verwendet wird, ist PipeName- der Name, der der Pipe beim Erstellen des KD-Verbindungsservers zugewiesen wurde.
Wenn Sie nicht bei dem Clientcomputer 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- ist der Name eines Kontos, das Zugriff auf den Servercomputer hat.
Wenn Sie dazu aufgefordert werden, geben Sie das Kennwort für UserNameein.
Nachdem dieser Befehl erfolgreich ausgeführt wurde, können Sie einen smarten Client mithilfe von -kdsrv- oder mithilfe der grafischen Benutzeroberfläche von WinDbg aktivieren.
Port=Socket-
Wenn 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, eine Verbindung mit dem smarten Client über eine Reverseverbindung herzustellen. Der Client muss clicon verwenden, wenn und nur, wenn der Server cliconverwendet. In den meisten Fällen wird der Smart Client vor dem KD-Verbindungsserver gestartet, wenn eine umgekehrte Verbindung verwendet wird.
port=COMPort-
Wenn COM-Protokoll verwendet wird, gibt COMPort- den zu verwendenden COM-Port an. Das Präfix "COM" ist optional , z. B. sind sowohl "com2" als auch "2" zulässig.
baud=BaudRate
Wenn das COM-Protokoll verwendet wird, sollte BaudRate- mit der bei der Erstellung des KD-Verbindungsservers gewählten Baudrate übereinstimmen.
Channel=COMChannel
Wenn com-Protokoll verwendet wird, sollte COMChannel- mit der Kanalnummer übereinstimmen, die beim Erstellen des KD-Verbindungsservers ausgewählt wurde.
proto=Protocol
Wenn SSL- oder SPIPE-Protokoll verwendet wird, sollte Protokoll- mit dem sicheren Protokoll übereinstimmen, das beim Erstellen des KD-Verbindungsservers verwendet wird.
Cert-
Wenn SSL- oder SPIPE-Protokoll verwendet wird, sollten Sie den identischen certuser=Cert oder machuser=Cert Parameter verwenden, der beim Erstellen des KD-Verbindungsservers verwendet wurde.
password=Password
Wenn beim Erstellen des KD-Verbindungsservers ein Kennwort verwendet wurde, müssen Kennwort- angegeben werden, um den SmartClient zu erstellen. Es muss mit dem ursprünglichen Kennwort übereinstimmen. Bei Kennwörtern wird zwischen Groß- und Kleinschreibung unterschieden. Wenn das falsche Kennwort angegeben wird, gibt die Fehlermeldung "Fehler 0x80004005" an.
ipversion=6
(Nur Debugtools für Windows 6.6.07 und frühere Versionen) Erzwingt, dass der Debugger IP-Version 6 anstelle von Version 4 verwendet, wenn TCP zum Herstellen einer Internetverbindung verwendet wird. In Windows Vista und höheren Versionen versucht der Debugger, die IP-Standardversion 6 automatisch zu verwenden, wodurch diese Option unnötig 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
usb2:targetname=String
com:pipe,port=\\VMHost\pipe\PipeName[,resets=0][,reconnect]
com:modem
Informationen zu diesen Protokollen finden Sie unter Getting Set 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
Hier können alle zusätzlichen Befehlszeilenparameter platziert werden. Eine vollständige Liste finden Sie unter Command-Line Optionen.
Da der KD-Verbindungsserver einfach als Gateway für den smarten Client fungiert, sind die zusätzlichen Optionen mit denen identisch, die Sie verwenden würden, wenn Sie einen Kerneldebugger auf dem Computer starten, auf dem KdSrv ausgeführt wird. Die Ausnahme ist jede Option, die einen Pfad oder Dateinamen angibt, wird als Pfad auf dem Computer verwendet, auf dem der smarte Client ausgeführt wird.