Cómo arreglar el error «Unable to locate valid DTB»
Qué es el Directory Table Base y por qué el lector tiene que encontrarlo. Después, las soluciones del error DTB en orden: mapa de memoria, virtualización, estabilidad del USB, arranque en frío y, al final del todo, un Windows limpio.
Respuesta corta
El error DTB significa que el lector leyó memoria a través de tu tarjeta pero no encontró el Directory Table Base del kernel de Windows. Ve por orden: genera un mapa de memoria, desactiva VT-d/VT-x o SVM/IOMMU en la BIOS del PC de juego, demuestra que el USB es estable y arranca en frío las dos máquinas.
En esta página11
- ¿Qué es el Directory Table Base?
- ¿Para qué necesita el lector el DTB?
- ¿Un error de DTB significa que la tarjeta está rota?
- Cómo saber cuál es tu causa
- Cómo arreglar el error DTB, paso a paso
- Qué ajustes de la BIOS hay que cambiar, y en qué PC
- Las opciones de línea de comandos que hay detrás de tu lanzador
- Por qué meter el DTB a mano no es una solución
- Por qué reinstalar Windows va al final
- Preguntas frecuentes sobre el error DTB
- Fuentes
¿Qué es el Directory Table Base?
Cada proceso de una máquina Windows ve su propio espacio de direcciones virtuales. Para traducir una dirección virtual a una dirección física de la RAM hace falta una jerarquía de tablas de páginas, cuya raíz es una dirección física por proceso. En x86-64 la CPU guarda esa dirección en el registro CR3, y Windows la almacena para cada proceso como DirectoryTableBase, que todo el mundo abrevia como DTB.
¿Para qué necesita el lector el DTB?
Tu tarjeta lee memoria física por PCIe, no memoria virtual, así que ve la RAM como una lista plana de bytes sin saber qué proceso es dueño de qué. Después de conectarse, lo primero que hace el lector es recorrer esa lista buscando una estructura que parezca las tablas de páginas del kernel. De esa estructura saca el DTB y a partir de ahí traduce direcciones igual que lo haría la CPU. Nada de lo que va por encima de ese paso puede funcionar hasta que salga bien. Por eso un fallo de DTB lo para todo y aparece como un error de inicialización y no como un problema de un juego concreto.
Info
¿Un error de DTB significa que la tarjeta está rota?
No, significa que la búsqueda falló. El mensaje demuestra que el USB funcionó, que el PCIe funcionó y que volvieron bytes. Lo que pasa es que el barrido leyó bytes equivocados, bytes incompletos o bytes que alguien había reordenado antes de que llegaran a la tarjeta. Cada una de esas situaciones tiene sus propias causas, y se pueden distinguir.
Cómo saber cuál es tu causa
Averigua qué causa tienes antes de ponerte a cambiar cosas, porque lo que de verdad las separa es la columna de la prueba.
| Lo que ves | Causa más probable | Prueba que lo confirma |
|---|---|---|
| Falla siempre, al instante, en una máquina que no ha funcionado nunca | No hay mapa de memoria y el lector se mete en rangos que no debería tocar | Genera un mapa de memoria y pásaselo. Si el error desaparece, era eso |
| Falla siempre y el PC de juego es plataforma AMD, o el enlace pasa por Thunderbolt | Leer direcciones físicas inválidas mata la ruta de lectura en estas plataformas, así que el barrido nunca termina | Aquí el mapa de memoria es prácticamente obligatorio. Prueba con el mapa antes que ninguna otra cosa |
| Falla siempre en una máquina donde la virtualización se quedó activada | VT-d/VT-x en Intel o SVM/IOMMU en AMD está remapeando o limitando lo que puede ver la tarjeta | Desactívalos en la BIOS del PC de juego, arranca en frío y vuelve a probar con el mismo mapa |
| Unas veces va y otras no, sin ningún patrón que sepas describir | Enlace USB inestable: las lecturas parciales dan un barrido que no encuentra nada | Lanza dos veces un test de velocidad de lectura. Cifras muy distintas, o una cifra baja, son tu respuesta |
| Empezó a fallar el día que se flasheó el firmware y no ha funcionado desde entonces | La propia imagen de firmware | Todo lo demás de esta página dio limpio. Vuelve al proveedor del firmware con la cadena exacta |
| Ayer funcionaba, hoy falla y tú no has tocado nada | Una actualización de Windows en cualquiera de las dos máquinas, o una tarjeta que se quedó colgada | Arranca en frío las dos máquinas del todo primero, y después revisa la versión del driver en el segundo PC |
En un primer montaje es normal tener dos causas a la vez: sin mapa y con la virtualización activada. Arregla las dos antes de concluir que ninguno de los dos cambios ha servido.
Cómo arreglar el error DTB, paso a paso
Los pasos empiezan por la solución más barata y más probable. Haz un paso y vuelve a probar antes de pasar al siguiente, porque cambiar cuatro cosas a la vez no te dice cuál era la que importaba.
- Genera un mapa de memoria en esta máquina, con este firmware, y apunta el software hacia él. Es la solución más efectiva que hay, y a la mayoría de los primeros montajes no les hace falta nada más
- Entra en la BIOS del PC DE JUEGO y desactiva la virtualización: VT-d y VT-x en Intel, SVM Mode e IOMMU en AMD. Guarda, sal y déjalo arrancar una vez hasta el escritorio
- Demuestra el enlace USB con un cable apto para datos, el puerto de datos de la tarjeta y un puerto USB 3 trasero del segundo PC, sin hub ni dock. La cifra de velocidad de lectura tiene que mantenerse estable en dos pasadas
- Arranca en frío las dos máquinas del todo: apágalas por completo y espera diez segundos con el cable de corriente fuera o la fuente apagada. Enciende primero el PC de juego y el segundo PC después
- Regenera el mapa de memoria después de cualquier cambio de hardware: RAM nueva, un módulo movido de sitio, otra ranura para la tarjeta o una actualización de BIOS. Un mapa caducado describe una distribución que ya no existe
- Solo si todos los pasos anteriores dieron limpio y el error sigue igual, haz una instalación limpia de Windows en el PC de juego. Es el último recurso, nunca el primer paso
Qué ajustes de la BIOS hay que cambiar, y en qué PC
Los ajustes que importan están en la BIOS del PC DE JUEGO, no en la del segundo PC. En plataformas Intel se llaman VT-x y VT-d, a veces dentro de un apartado llamado Intel Virtualization Technology, y en AMD son SVM Mode e IOMMU. En algunas placas hay entradas relacionadas en la misma zona, como una opción de protección DMA o kernel DMA protection. Cámbialos de uno en uno y apunta lo que cambias, porque algún día vas a querer devolver esta máquina a la normalidad. Si no encuentras un ajuste, busca su nombre exacto en el manual de la placa en lugar de ir adivinando por los menús.
Las opciones de línea de comandos que hay detrás de tu lanzador
La mayoría de los productos envuelven estas opciones en un lanzador, y conocerlas te dice qué hace de verdad una casilla de tu software. Todos estos comandos son operaciones de inspección y de configuración.
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 0x1ad000Aviso
Por qué meter el DTB a mano no es una solución
Si al pasar un valor de DTB a mano el error desaparece, has aprendido algo útil: el problema era el barrido, no la ruta de lectura. Aun así no es una solución, porque Windows elige el valor en el arranque y será distinto la próxima vez que reinicies cualquiera de las dos máquinas. Un montaje que dependa de eso se rompe a diario. Úsalo para confirmar una teoría y después arregla el mapa de memoria o el ajuste de BIOS que hizo fallar el barrido.
Aviso
Por qué reinstalar Windows va al final
Una instalación limpia va la última porque lleva horas, cambia muchas variables a la vez y no arregla ninguna de las causas habituales. Después de hacerla, el mapa de memoria que faltaba sigue faltando, el ajuste de BIOS sigue puesto y el cable justo sigue siendo justo. Reinstala solo si la cadena del error sigue sin cambiar después de haber probado el mapa, la BIOS, la ruta USB y un arranque en frío en condiciones.
Preguntas frecuentes sobre el error DTB
¿El número que va detrás del error significa algo?
Sí, porque identifica cuál de los intentos de la herramienta falló y con eso acota la causa. Inclúyelo siempre al reportar el error, copiado como texto y no como captura.
¿Puedo copiar el mapa de memoria de alguien con la misma placa base?
No. Un mapa describe la distribución de memoria física de una máquina en un momento concreto, incluido cómo tiene poblada la RAM. El mapa de otra persona no sirve de nada en el mejor caso, y en el peor es justo el motivo de que te fallen las lecturas.
¿Hay que desactivar la virtualización también en el segundo PC?
No. El ajuste importa en la máquina cuya memoria se está leyendo, así que no toques el segundo PC salvo que tu propio software diga otra cosa.
¿Un error de DTB es señal de detección?
No. Es un fallo de inicialización del lector en tu segundo PC, y el mismo error sale en una máquina sin ningún juego instalado.
Funciona hasta que reinicio el PC de juego y entonces vuelve a fallar. ¿Por qué?
Ese patrón apunta a un mapa de memoria caducado, o a un DTB metido a mano que venía del arranque anterior. Regenera el mapa y deja de pasar un DTB fijo.
Fuentes
La lista ordenada de soluciones es trabajo en banco: es el orden en el que el equipo resuelve los tickets de DTB, empezando por el paso más barato.
- 01MemProcFS (Ulf Frisk)
la herramienta que muestra el error DTB y acepta los flags memmap y dtb que aparecen en esta página
github.com
- 02PCILeech (Ulf Frisk)
la herramienta de lectura de memoria a la que pertenece el comando probe de esta página
github.com
- 03LeechCore (Ulf Frisk)
la biblioteca cuyos nombres de flags siguen los comandos de esta página
github.com
- 04RAMMap (Sysinternals)
cómo se distribuyen los rangos de memoria física en una máquina Windows, que es justo lo que describe un mapa de memoria
learn.microsoft.com
Sigue leyendo
¿Sigues atascado? Abre un ticket en Discord
Todas las guías