No se encuentra SetDefaultDllDirectories en Kernel32.dll

Se produce el siguiente error cuando se intenta ejecutar determinados programas en versiones de Windows anteriores a Windows 8 y Windows Server 2012:

No se encuentra el punto de entrada del procedimiento SetDefaultDllDirectories en la biblioteca de vínculos dinámicos Kernel32.dll.

A veces el mensaje menciona AddDllDirectory o RemoveDllDirectory en lugar de SetDefaultDllDirectories. En Windows Vista, Windows Server 2008, Windows 7 y Windows Server 2008 R2 se resuelve mediante actualizaciones. No hay solución para los Windows anteriores a Vista, como XP y Server 2003.

Las funciones AddDllDirectory, RemoveDllDirectory y SetDefaultDllDirectories se introdujeron en la actualización KB2533623 publicada en julio de 2011, “Aviso de seguridad de Microsoft: la carga de una biblioteca no segura podría permitir la ejecución remota de código”. Estas funciones permiten limitar las rutas de búsqueda de bibliotecas para combatir vulnerabilidades relacionadas con la suplantación de ficheros DLL (DLL hijacking). Windows 8, Windows Server 2012 y siguientes ya las incluyen.

Si los programas han de ser compatibles con las versiones anteriores de Windows, Microsoft sugiere a los desarrolladores no invocar las funciones de forma directa, sino obtener sus direcciones durante la ejecución mediante GetProcAddress. Dos ejemplos de programas que no lo cumplen son el ejecutable con el que Sony empaqueta Xperia Companion y el instalador de la versión 0.298 de la aplicación de chat para videojuegos Discord.

La solución más directa para el mensaje de error consiste en instalar a mano el paquete KB2533623, aunque la recomendación es aplicar todas las actualizaciones importantes que ofrezca Windows Update y, en particular para Windows 7 y Windows Server 2008 R2, el paquete mensual de seguridad y calidad más reciente posible.

Los paquetes de Windows Vista requieren al menos el Service Pack 1, aunque se aconsejaría tener el Service Pack 2. No hay ninguna condición especial en Windows 7 pero se recomienda el Service Pack 1 para seguir recibiendo actualizaciones importantes. Existen páginas de descarga específicas para Windows Server 2008 y Windows Server 2008 R2, pero los paquetes MSU y los requisitos son idénticos a los de sus versiones clientes equivalentes. La única diferencia es que Windows Server 2008 continúa con soporte técnico y nuevas actualizaciones a pesar de que el ciclo de vida de Windows Vista finalizó hace varios meses.

Las versiones mínimas de Kernelbase.dll (Windows 7 y Windows Server 2008 R2) y Kernel32.dll que implementan las funciones AddDllDirectory, RemoveDllDirectory y SetDefaultDllDirectories se resumen en la tabla siguiente.

Windows Vista y Windows Server 2008 Service Pack 1
GDR 6.0.6001.18631
LDR 6.0.6001.22898
Service Pack 2
GDR 6.0.6002.18449
LDR 6.0.6002.22625
Windows 7 y Windows Server 2008 R2 RTM
GDR 6.1.7600.16816
LDR 6.1.7600.20978
Service Pack 1
GDR 6.1.7601.17617
LDR 6.1.7601.21728

23 thoughts on “No se encuentra SetDefaultDllDirectories en Kernel32.dll

  1. tengo el mismo error
    descarge la actualizacion y el momento de intentar instalar dice
    “el instalador encontro un error: 0xc8000247”
    quiero instalar los drivers pero no me deja instalar nada

  2. Amigo, muchisimas gracias. Con la instalación de esa actualización ya pude instalar los drivers de una Optiplex 3020 con Windows 7.

  3. Tengo el office 2007 y ahora que quise instalar el office 365 versión 32bits me dejó descargarlo, pero no me permite instalarlo, me marcó el error que no se encuentra el punto de entrada del procedimiento.

  4. Tengo instalado el office 2007, descargué el office 365, pero no me deja instalarlo me marca: no se encuentra el punto de entrada del procedimiento. ¿qué debo hacer para que pueda instalar el office 365?

    1. No, Windows XP es demasiado antiguo. Es posible que ese software de impresora ya no sea compatible con XP y que el error de SetDefaultDllDirectories sea tan solo una manifestación de ello.

    1. El error 0x80070424 (ERROR_SERVICE_DOES_NOT_EXIST) indica que las entradas de configuración de alguno de los servicios necesarios para la búsqueda, descarga o instalación de actualizaciones no existe, como el instalador de módulos de Windows, el servicio de transferencia inteligente en segundo plano o el servicio de Windows Update. Ciertos ejemplares de software malicioso, acciones de configuración o mantenimiento inadecuadas, o fallos de hardware pueden inducir este problema. Sin embargo, debido a su complejidad, la asistencia para la resolución del mismo queda fuera del ámbito del blog, por lo que se aconseja buscar ayuda en los foros:
      https://social.technet.microsoft.com/Forums/es-es/home
      https://answers.microsoft.com/es-es

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *