So behebst du „Unable to locate valid DTB“
Was die Directory Table Base ist und warum der Reader sie finden muss. Danach die Lösungen zum DTB-Fehler in der richtigen Reihenfolge: Memory Map, Virtualisierung, USB-Stabilität, Kaltstart und ein sauberes Windows ganz zum Schluss.
Kurze Antwort
Der DTB-Fehler heißt, dass der Reader über deine Karte Speicher gelesen, darin aber die Directory Table Base des Windows-Kernels nicht gefunden hat. Geh der Reihe nach vor: Memory Map erzeugen, VT-d/VT-x oder SVM/IOMMU im BIOS des Gaming-PC abschalten, die USB-Stabilität belegen und dann beide Maschinen kalt starten.
Auf dieser Seite11
- Was ist die Directory Table Base?
- Warum braucht der Reader den DTB?
- Heißt ein DTB-Fehler, dass die Karte kaputt ist?
- So erkennst du, welche Ursache du hast
- So behebst du den DTB-Fehler Schritt für Schritt
- Welche BIOS-Einstellungen du änderst, und an welchem PC
- Die Befehlszeilenoptionen hinter deinem Launcher
- Warum ein von Hand eingetragener DTB keine Lösung ist
- Warum die Windows-Neuinstallation zuletzt kommt
- Häufige Fragen zum DTB-Fehler
- Quellen
Was ist die Directory Table Base?
Jeder Prozess auf einer Windows-Maschine sieht seinen eigenen privaten virtuellen Adressraum. Um eine virtuelle Adresse in eine physische Adresse im RAM zu übersetzen, braucht es eine Hierarchie von Page Tables, deren Wurzel eine physische Adresse pro Prozess ist. Auf x86-64 hält die CPU diese Adresse im Register CR3, und Windows speichert sie für jeden Prozess als DirectoryTableBase, was alle zu DTB abkürzen.
Warum braucht der Reader den DTB?
Deine Karte liest über PCIe physischen Speicher und keinen virtuellen, sie sieht das RAM also als flaches Feld von Bytes, ohne zu wissen, welchem Prozess was gehört. Nach dem Verbinden ist die erste Aufgabe des Readers, dieses Feld nach einer Struktur zu durchsuchen, die wie die Page Tables des Kernels aussieht. Aus dieser Struktur gewinnt er den DTB zurück und übersetzt Adressen von da an so, wie die CPU es täte. Nichts, was darüber liegt, kann laufen, bevor das geklappt hat. Deshalb bringt ein DTB-Fehler alles zum Stehen und erscheint als Fehler bei der Initialisierung und nicht als Problem eines bestimmten Spiels.
Info
Heißt ein DTB-Fehler, dass die Karte kaputt ist?
Nein, er heißt, dass die Suche gescheitert ist. Die Meldung belegt, dass USB funktioniert hat, PCIe funktioniert hat und Bytes zurückkamen. Der Scan hat dann die falschen Bytes gelesen, unvollständige Bytes oder Bytes, die schon vor der Karte umsortiert wurden. Jede dieser Lagen hat eigene Ursachen, und du kannst sie auseinanderhalten.
So erkennst du, welche Ursache du hast
Kläre deine Ursache, bevor du anfängst, Dinge umzustellen, denn auseinanderhalten lassen sie sich erst über die Spalte mit der Prüfung.
| Was du siehst | Wahrscheinlichste Ursache | Prüfung, die es bestätigt |
|---|---|---|
| Scheitert jedes Mal, sofort, auf einer Maschine, auf der es nie lief | Keine Memory Map, und der Reader läuft in Bereiche, die er nicht anfassen darf | Erzeug eine Memory Map und übergib sie. Ist der Fehler weg, war es das |
| Scheitert jedes Mal, und der Gaming-PC ist eine AMD-Plattform oder die Verbindung läuft über Thunderbolt | Auf diesen Plattformen killt das Lesen ungültiger physischer Adressen den Lesepfad, der Scan kommt also nie durch | Eine Memory Map ist hier faktisch Pflicht. Test mit der Map, bevor du irgendetwas anderes testest |
| Scheitert jedes Mal auf einer Maschine, auf der die Virtualisierung angeblieben ist | VT-d/VT-x bei Intel oder SVM/IOMMU bei AMD bilden um oder schränken ein, was die Karte sehen kann | Schalt sie im BIOS des Gaming-PC ab, mach einen Kaltstart und probier es mit derselben Map erneut |
| Mal läuft es, mal nicht, ohne erkennbares Muster | Instabile USB-Verbindung — unvollständige Lesevorgänge ergeben einen Scan, der nichts findet | Lass den Test der Leserate zweimal laufen. Stark abweichende Werte oder ein niedriger Wert sind deine Antwort |
| Scheitert seit dem Tag, an dem die Firmware geflasht wurde, und lief seitdem nie | Das Firmware-Image selbst | Alles andere auf dieser Seite war beim Test sauber. Geh mit dem genauen Fehlertext zurück zum Firmware-Anbieter |
| Lief gestern, scheitert heute, ohne dass du etwas geändert hast | Ein Windows-Update auf einer der Maschinen oder eine Karte, die hängen geblieben ist | Mach zuerst einen vollständigen Kaltstart beider Maschinen und prüf dann die Treiberversion auf dem Zweit-PC |
Beim ersten Aufbau treten oft zwei Ursachen gleichzeitig auf: keine Map und angelassene Virtualisierung. Beheb beide, bevor du den Schluss ziehst, dass keine der Änderungen geholfen hat.
So behebst du den DTB-Fehler Schritt für Schritt
Die Schritte beginnen mit der günstigsten und wahrscheinlichsten Lösung. Mach einen Schritt und probier es erneut, bevor du weitergehst, denn vier Änderungen auf einmal sagen dir nichts darüber, welche davon zählte.
- Erzeug eine Memory Map auf dieser Maschine, mit dieser Firmware, und zeig der Software den Weg dorthin. Das ist die wirksamste Lösung, und die meisten ersten Aufbauten brauchen nichts weiter
- Geh ins BIOS des GAMING-PC und schalte die Virtualisierung ab: VT-d und VT-x bei Intel, SVM Mode und IOMMU bei AMD. Speichern, verlassen und einmal bis zum Desktop durchstarten lassen
- Beleg die USB-Verbindung mit einem Datenkabel, dem Daten-Port der Karte und einem hinteren USB-3-Port am Zweit-PC, ohne Hub und ohne Dock. Der Wert der Leserate muss über zwei Durchläufe stabil bleiben
- Starte beide Maschinen richtig kalt: komplett ausschalten, dann zehn Sekunden warten, mit gezogenem Netzkabel oder ausgeschaltetem Netzteil. Starte den Gaming-PC zuerst und den Zweit-PC danach
- Erzeug die Memory Map nach jeder Hardwareänderung neu, etwa nach neuem RAM, einem umgesteckten DIMM, einem anderen Slot für die Karte oder einem BIOS-Update. Eine veraltete Map beschreibt ein Layout, das es nicht mehr gibt
- Nur wenn jeder Schritt oben sauber war und der Fehler unverändert ist, setz Windows auf dem Gaming-PC neu auf. Das ist die letzte Möglichkeit und nie der erste Schritt
Welche BIOS-Einstellungen du änderst, und an welchem PC
Die Einstellungen, auf die es ankommt, liegen im BIOS des GAMING-PC und nicht im BIOS des Zweit-PC. Auf Intel-Plattformen heißen sie VT-x und VT-d, manchmal unter der Überschrift Intel Virtualization Technology, bei AMD heißen sie SVM Mode und IOMMU. Auf manchen Boards liegen verwandte Einträge wie ein Schalter für DMA protection oder Kernel DMA Protection im selben Bereich. Änder sie einzeln und notier, was du geändert hast, denn irgendwann willst du diese Maschine wieder in den Normalzustand bringen. Findest du eine Einstellung nicht, such ihren genauen Namen im Handbuch des Boards, statt durch Menüs zu raten.
Die Befehlszeilenoptionen hinter deinem Launcher
Die meisten Produkte verpacken diese Optionen in einem Launcher, und wenn du sie kennst, weißt du, was ein Häkchen in deiner Software tatsächlich tut. Alle diese Befehle sind Prüf- und Einrichtungsvorgänge.
REM Probe which physical memory ranges are readable, to build a map from
pcileech.exe probe -device fpga
REM Let the tool derive the memory map itself
MemProcFS.exe -device fpga -memmap auto
REM Or pass a map file you generated on this machine
MemProcFS.exe -device fpga -memmap mmap.txt
REM Verbose output, so the failing line is visible instead of guessed at
MemProcFS.exe -device fpga -memmap mmap.txt -v -printf
REM Diagnostic only: supply a known DTB by hand. The value changes every boot
MemProcFS.exe -device fpga -memmap mmap.txt -dtb 0x1ad000Achtung
Warum ein von Hand eingetragener DTB keine Lösung ist
Wenn ein DTB-Wert, den du selbst einträgst, den Fehler verschwinden lässt, hast du etwas Nützliches gelernt: Das Problem war der Scan und nicht der Lesepfad. Eine Lösung ist es trotzdem nicht, denn Windows wählt den Wert beim Start, und er ist ein anderer, sobald eine der beiden Maschinen neu startet. Ein Aufbau, der davon abhängt, geht also täglich kaputt. Nutz das, um eine Vermutung zu bestätigen, und beheb danach die Memory Map oder die BIOS-Einstellung, an der der Scan gescheitert ist.
Achtung
Warum die Windows-Neuinstallation zuletzt kommt
Eine Neuinstallation kommt zuletzt, weil sie Stunden dauert, viele Variablen auf einmal ändert und keine der häufigen Ursachen behebt. Danach fehlt eine fehlende Memory Map immer noch, ist eine BIOS-Einstellung immer noch gesetzt und ein wackliges Kabel immer noch wacklig. Setz nur dann neu auf, wenn der Fehlertext sich immer noch nicht geändert hat, nachdem du Map, BIOS, USB-Weg und einen richtigen Kaltstart getestet hast.
Häufige Fragen zum DTB-Fehler
Bedeutet die Zahl hinter dem Fehler etwas?
Ja, denn sie zeigt, welcher Versuch des Werkzeugs gescheitert ist, und grenzt damit die Ursache ein. Gib sie immer mit an, wenn du den Fehler meldest, und kopier sie als Text statt als Screenshot.
Kann ich eine Memory Map von jemandem mit demselben Mainboard übernehmen?
Nein. Eine Map beschreibt das physische Speicherlayout einer Maschine zu einem Zeitpunkt, einschließlich der Art, wie ihr RAM bestückt ist. Die Map einer anderen Person ist bestenfalls nutzlos und schlimmstenfalls der Grund, warum deine Lesevorgänge scheitern.
Muss ich die Virtualisierung auch auf dem Zweit-PC abschalten?
Nein. Die Einstellung zählt auf der Maschine, deren Speicher gelesen wird, also lass den Zweit-PC in Ruhe, solange deine eigene Software nichts anderes vorgibt.
Ist ein DTB-Fehler ein Anzeichen für eine Erkennung?
Nein. Es ist ein Fehler bei der Initialisierung des Readers auf deinem Zweit-PC, und derselbe Fehler erscheint auf einer Maschine, auf der gar kein Spiel installiert ist.
Es läuft, bis ich den Gaming-PC neu starte, dann scheitert es wieder. Warum?
Dieses Muster deutet auf eine veraltete Memory Map hin oder auf einen von Hand eingetragenen DTB, der vom vorherigen Start übrig ist. Erzeug die Map neu und hör auf, einen festen DTB zu übergeben.
Quellen
Die Reihenfolge der Lösungen ist Arbeit an der Werkbank: In dieser Reihenfolge arbeitet das Team DTB-Tickets ab, beginnend mit dem günstigsten Schritt.
- 01MemProcFS (Ulf Frisk)
das Werkzeug, das den DTB-Fehler ausgibt und die auf dieser Seite gezeigten Flags memmap und dtb entgegennimmt
github.com
- 02
- 03
- 04RAMMap (Sysinternals)
wie die Bereiche des physischen Speichers auf einer Windows-Maschine liegen — genau das beschreibt eine Memory Map
learn.microsoft.com
Weiterlesen
Kommst du nicht weiter? Ticket auf Discord öffnen
Alle Anleitungen