.kdfiles (Treiberersetzungszuordnung festlegen)

Der Befehl .kdfiles liest eine Datei und verwendet deren Inhalt als Treiberersetzungszuordnung.

.kdfiles MapFile
.kdfiles -m OldDriver NewDriver
.kdfiles -s SaveFile
.kdfiles -c
.kdfiles

Parameter

Mapfile
Gibt die zu lesende Treiberersetzungszuordnungsdatei an.

-M
Fügt der aktuellen Zuordnungsliste eine Treiberersetzungszuordnung hinzu.

OldDriver
Gibt den Pfad und Dateinamen des vorherigen Treibers auf dem Zielcomputer an. Die Syntax für OldDriver entspricht der der ersten Zeile nach der Zuordnung in einer Treiberersetzungsdatei. Weitere Informationen zu dieser Syntax finden Sie unter Zuordnen von Treiberdateien.

NewDriver
Gibt den Pfad und Dateinamen des neuen Treibers an. Dieser Treiber kann sich auf dem Hostcomputer oder an einem anderen Netzwerkstandort befinden. Die Syntax für NewDriver entspricht der der zweiten Zeile nach der Zuordnung in einer Treiberersetzungsdatei. Weitere Informationen zu dieser Syntax finden Sie unter Zuordnen von Treiberdateien.

-s
Erstellt eine Datei und schreibt die aktuellen Treiberersetzungszuordnungen in diese Datei.

Savefile
Gibt den Namen der zu erstellenden Datei an.

-C
Löscht die vorhandene Treiberersetzungszuordnung. (Durch diese Option wird die Zuordnungsdatei selbst nicht geändert. Stattdessen löscht diese Option die aktuellen Zuordnungseinstellungen des Debuggers.)

Environment

Modi

Nur Kernelmodus

Ziele

Nur Livedebuggen

Plattformen

x86-based processors

Zusätzliche Informationen

Weitere Informationen und Beispiele für treiberersetzung und den Austausch anderer Kernelmodusmodule, eine Beschreibung des Formats für Treiberersetzungszuordnungsdateien und Einschränkungen für die Verwendung dieses Features finden Sie unter Zuordnen von Treiberdateien.

Hinweise

Wenn Sie den Befehl .kdfiles ohne Parameter verwenden, zeigt der Debugger den Pfad und Namen der aktuellen Treiberersetzungszuordnungsdatei sowie den aktuellen Satz von Ersatzzuordnungen an.

Wenn Sie diesen Befehl ausführen, wird die angegebene MapFile-Dateigelesen. Wenn die Datei nicht gefunden wird oder keinen Text im richtigen Format enthält, zeigt der Debugger die Meldung "Dateizuordnungen können nicht geladen werden" an.

Wenn die angegebene Datei das richtige Format für die Treiberersetzungszuordnung aufweist, lädt der Debugger den Inhalt der Datei und verwendet sie als Treiberersetzungszuordnung. Diese Zuordnung bleibt bestehen, bis Sie den Debugger beenden oder einen anderen KDfiles-Befehl ausgeben.

Nachdem die Datei gelesen wurde, ist die Treiberersetzungszuordnung von nachfolgenden Änderungen an der Datei nicht betroffen (es sei denn, auf diese Änderungen folgt ein anderer KDfiles-Befehl ).

Ersetzung von Benutzermodusdateien

Die Ersetzung der Benutzermodusdatei wurde in Version 2004 von Windows hinzugefügt. Diese Unterstützung ermöglicht es, die folgenden Benutzermodusdateien durch KD-Dateien zu ersetzen.

  • Benutzermodus-DLLs (einschließlich NTDLL und KnownDlls)
  • Benutzermodus-EXEs, die ein Standard Prozessimage für CreateProcess sind

Um die Unterstützung von KD-Dateien im Benutzermodus zu verwenden, müssen Sie zuerst das Laden von Kernelsymbolen mithilfe des !gflag +ksl Debuggerbefehls aktivieren oder die globalen ksl-Flags in der Registrierung konfigurieren. Weitere Informationen zu gflag finden Sie unter !gflag.

Die folgenden Beispiele veranschaulichen die allgemeine Verwendung.

.kdfiles -m system32\userdll C:\myfiles\my_native_userdll.dll
.kdfiles -m system32\userdll \\server\share\my_native_userdll.dll
.kdfiles -m syswow64\ntdll.dll \\server\share\my_x86_wow64_ntdll.dll
.kdfiles -m system32\userbase.dll \\server\share\my_native_userbase.dll

KDfiles im Benutzermodus ignoriert alle Fehler beim Abgleich einer Datei und zeigt keine Fehlermeldung an, wenn ein Fehler auftritt.

Achten Sie darauf, die KDfiles-Pfade für KDfiles im Benutzermodus entsprechend zu qualifizieren. Es ist eine schlechte Idee, nur ntdll.dll (statt system32\ntdll.dll) abzugleichen, da andernfalls die Wow64 NTDLL durch die native ersetzt wird. Ähnliche Situationen können bei anderen mehrdeutigen Teilzeichenfolgenübereinstimmungen auftreten.

Nach Build 20172 versucht der KDfiles-Mechanismus im Benutzermodus, Dateien aus dem Debugger zu pullen, bis ein Versuch fehlschlägt. Dann wird der Dateiname, der nicht abgerufen werden konnte, nicht erneut für die Startsitzung versucht, ohne dass der Debugger manuell eingreifen muss, um den Zielsystemstatus zu ändern. Bei früheren Builds versucht der KDFILES-Mechanismus im Benutzermodus einen (erfolgreichen oder nicht erfolgreichen) Dateinamen pro Startsitzung zu pullen. Diese Richtlinien reduzieren den Mehraufwand für die Kommunikation mit dem Debugger für Dateien, die nicht in der kdfiles-Liste enthalten sind oder auf die nicht ersetzt werden kann, z. B. aufgrund von Freigabeverletzungen von Prozessen, die möglicherweise bereits eine bestimmte Datei geladen haben. Aufgrund dieses Verhaltens ist es im Allgemeinen ratsam, dateien so zu konfigurieren, dass sie die KDfiles-Liste vorab abrufen, bevor zuerst darauf verwiesen wird.

Beachten Sie die Einschränkungen, da sie bereits verwendete Datenträgerdateien usw. nicht ersetzen können. Da es sich bei vielen System-DLLs nicht einfach um hot swappable handelt, nachdem sie anfänglich geladen wurden, müssen Sie die Option gflags +ksl voreinstellen und .kdfiles verwenden, um alle Binärdateien im Benutzermodus direkt beim Start zu ersetzen.

Weitere Informationen zum Aktivieren des Startdebuggens finden Sie unter BCDEdit /bootdebug.

Die Verwendung des KDNET-Transport-KDNET mit hoher Geschwindigkeit/geringer Latenz wird empfohlen, um die Auswirkungen auf die Systemleistung zu minimieren.

Requirements (Anforderungen)

Version

Unterstützt in Windows XP und höheren Versionen des Windows-Betriebssystems.