How to fix "Unable to locate valid DTB"
What the Directory Table Base is and why the reader must find it. Then the ordered fixes for the DTB error: memory map, virtualisation, USB stability, cold boot, and clean Windows last.
Short answer
The DTB error means the reader read memory through your card but could not find the Windows kernel's Directory Table Base. Work in order: generate a memory map, disable VT-d/VT-x or SVM/IOMMU in the game PC's BIOS, prove USB stability, then cold-boot both machines.
On this page11
- What is the Directory Table Base?
- Why does the reader need the DTB?
- Does a DTB error mean the card is broken?
- How to tell which cause you have
- How to fix the DTB error, step by step
- Which BIOS settings to change, and on which PC
- The command-line options behind your launcher
- Why entering the DTB by hand is not a fix
- Why reinstalling Windows should come last
- Common questions about the DTB error
- Sources
What is the Directory Table Base?
Every process on a Windows machine sees its own private virtual address space. Translating a virtual address into a physical address in RAM needs a page-table hierarchy, whose root is one physical address per process. On x86-64 the CPU keeps that address in the CR3 register, and Windows stores it for each process as the DirectoryTableBase, which everyone shortens to DTB.
Why does the reader need the DTB?
Your card reads physical memory over PCIe, not virtual memory, so it sees RAM as a flat array of bytes with no idea which process owns what. After connecting, the reader's first job is to scan that array for a structure that looks like the kernel's page tables. It recovers the DTB from that structure and from then on translates addresses the way the CPU would. Nothing above that step can run until it succeeds. That is why a DTB failure stops everything and appears as an initialisation error rather than a game-specific one.
Info
Does a DTB error mean the card is broken?
No, it means the search failed. The message proves that USB worked, PCIe worked and bytes came back. The scan then read the wrong bytes, incomplete bytes, or bytes that had been rearranged before they reached the card. Each of those situations has its own causes, and you can tell them apart.
How to tell which cause you have
Work out which cause you have before you start changing things, because the test column is what actually separates them.
| What you see | Most likely cause | Test that confirms it |
|---|---|---|
| Fails every single time, immediately, on a machine that has never worked | No memory map, and the reader is walking into ranges it must not touch | Generate a memory map and pass it in. If the error goes away, that was it |
| Fails every time, and the game PC is an AMD platform or the link runs through Thunderbolt | Reading invalid physical addresses kills the read path on these platforms, so the scan never completes | A memory map is effectively mandatory here. Test with the map before testing anything else |
| Fails every time on a machine where virtualisation was left on | VT-d/VT-x on Intel or SVM/IOMMU on AMD is remapping or restricting what the card can see | Disable them in the game PC's BIOS, cold-boot, retry with the same map |
| Works sometimes, fails sometimes, with no pattern you can name | Unstable USB link — partial reads produce a scan that finds nothing | Run a read-speed test twice. Wildly different figures, or a low figure, is your answer |
| Started failing the day the firmware was flashed and never worked since | The firmware image itself | Everything else on this page tested clean. Go back to the firmware supplier with the exact string |
| Worked yesterday, fails today, nothing changed by you | A Windows update on either machine, or a card left in a hung state | Cold-boot both machines fully first, then re-check the driver version on the second PC |
Two causes at once are common on a first build: no map, and virtualisation left on. Fix both before you conclude that either change did not help.
How to fix the DTB error, step by step
The steps start with the cheapest and most likely fix. Do one step and retry before you move on, because changing four things at once tells you nothing about which one mattered.
- Generate a memory map on this machine, with this firmware, and point the software at it. This is the single most effective fix, and most first builds need nothing more
- Enter the GAME PC's BIOS and disable virtualisation: VT-d and VT-x on Intel, SVM Mode and IOMMU on AMD. Save, exit and let it boot once to the desktop
- Prove the USB link using a data cable, the card's data port and a rear USB 3 port on the second PC, with no hub or dock. The read-speed figure must stay stable across two runs
- Cold-boot both machines fully: power off completely, then wait ten seconds with the mains lead out or the PSU switch off. Start the game PC first and the second PC after it
- Regenerate the memory map after any hardware change, such as new RAM, a moved DIMM, a different slot for the card or a BIOS update. A stale map describes a layout that no longer exists
- Only if every step above tested clean and the error is unchanged, do a clean Windows install on the game PC. It is a last resort, never the first step
Which BIOS settings to change, and on which PC
The settings that matter are in the GAME PC's BIOS, not the second PC's. On Intel platforms they are named VT-x and VT-d, sometimes under an Intel Virtualization Technology heading, and on AMD they are SVM Mode and IOMMU. On some boards, related entries such as a DMA protection or kernel DMA protection toggle sit in the same area. Change them one at a time and write down what you changed, because one day you will want to put this machine back to normal. If you cannot find a setting, search the board manual for its exact name rather than guessing at menus.
The command-line options behind your launcher
Most products wrap these options in a launcher, and knowing them tells you what a checkbox in your software is actually doing. All of these commands are inspection and setup operations.
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 0x1ad000Warning
Why entering the DTB by hand is not a fix
If a DTB value you supply by hand makes the error go away, you have learned something useful: the problem was the scan, not the read path. It is still not a solution, because Windows chooses the value at boot and it will be different the next time either machine restarts. A build that depends on it therefore breaks daily. Use it to confirm a theory, then fix the memory map or BIOS setting that made the scan fail.
Warning
Why reinstalling Windows should come last
A clean install comes last because it takes hours, changes many variables at once and fixes none of the common causes. After it, a missing memory map is still missing, a BIOS setting is still set, and a marginal cable is still marginal. Reinstall only if the error string has still not changed after you have tested the map, the BIOS, the USB path and a proper cold boot.
Common questions about the DTB error
Does the number after the error mean anything?
Yes, because it identifies which of the tool's attempts failed and so narrows down the cause. Always include it when you report the error, copied as text rather than as a screenshot.
Can I copy a memory map from someone with the same motherboard?
No. A map describes the physical memory layout of one machine at one point in time, including how its RAM is populated. Someone else's map is useless at best, and at worst it is the reason your reads fail.
Do I have to disable virtualisation on the second PC as well?
No. The setting matters on the machine whose memory is being read, so leave the second PC alone unless your own software documents otherwise.
Is a DTB error a sign of detection?
No. It is an initialisation failure in the reader on your second PC, and the same error appears on a machine with no game installed at all.
It works until I restart the game PC, then fails again. Why?
That pattern points to a stale memory map, or to a DTB supplied by hand that was carried over from the previous boot. Regenerate the map and stop passing a fixed DTB.
Sources
The ordered fix list is bench work: it is the order in which the team works through DTB tickets, starting with the cheapest step.
- 01MemProcFS (Ulf Frisk)
the tool that prints the DTB error and takes the memmap and dtb flags shown on the page
github.com
- 02
- 03
- 04RAMMap (Sysinternals)
how physical memory ranges are laid out on one Windows machine, which is what a memory map describes
learn.microsoft.com
Read next
Still stuck? Open a ticket on Discord
All guides