INFORMACIÓN: entrada Windows NT, 2000 o XP utiliza registro KnownDLLs para buscar archivos DLL

Seleccione idioma Seleccione idioma
Id. de artículo: 164501 - Ver los productos a los que se aplica este artículo
importante : este artículo contiene información acerca de cómo modificar el registro. Antes de modificar el Registro, asegúrese de hacer una copia de seguridad del mismo y de que sabe cómo restaurarlo si ocurre algún problema. Para obtener información sobre cómo realizar una copia de seguridad, restaurar y modificar el Registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
256986Definición del Registro de Microsoft Windows
Expandir todo | Contraer todo

En esta página

Resumen

Microsoft Windows NT, Windows 2000 y Windows XP utiliza las entradas del registro KnownDLLs para buscar archivos DLL de 16 bits o 32 bits al cargar la DLL. Archivos DLL de 32 bits la clave del registro KnownDLLs entrada del registro sólo afecta a la búsqueda de archivos DLL cargados implícitamente. DLL de 16 bits la clave del registro KnownDLLs entrada del registro afecta a la búsqueda de ambos DLL cargadas de forma implícita y explícita. Si incluye un nombre de DLL en la entrada del registro KnownDLLs incorrectamente, LoadLibrary en WOW de Windows NT, 2000 o XP no puede cargar una DLL ubicada en directorio de la aplicación actual.

Más información

Windows NT, 2000 o XP utiliza la entrada de registro KnownDLLs para determinar cuál se utilizará la DLL de una aplicación. Hay dos entradas de registro KnownDLLs diferentes: uno que afecta a la carga de DLL de 32 bits y otro que afecta a la carga de DLL de 16 bits. Una DLL enumerada en la entrada de registro KnownDLLs a veces se denomina "KnownDLL" en este artículo.

Archivos DLL: 16 bits

Para archivos DLL de 16 bits, el valor del registro KnownDLLs se detecta en la siguiente clave:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW
				
KnownDLLs el valor de registro es una cadena REG_SZ con nombres de archivo DLL en formato 8.3, separados por un espacio. El valor de KnownDLLs afecta a ambos DLL cargadas de forma implícita y explícita.

Sin el valor del registro KnownDLLs WOW de Windows NT utiliza el siguiente orden de búsqueda para localizar la DLL:
  1. El directorio actual de la tarea que está utilizando el archivo DLL.
  2. El directorio \WINNT.
  3. El directorio \WINNT\SYSTEM.
  4. El directorio \Winnt\System32.
  5. El directorio del archivo ejecutable para la tarea que está utilizando el archivo DLL.
  6. Un directorio indicado en la variable de entorno PATH.
Con el valor de registro KnownDLLs, WOW de Windows sólo busca en el directorio \winnt\system32 para localizar la DLL. Si KnownDLLs incluye una entrada para un archivo DLL que no se encuentra en el directorio \Winnt\System32, LoadLibrary no puede cargar la DLL, incluso si el archivo DLL se encuentra en cualquiera de las 5 otras ubicaciones anteriores.

Si WOW de Windows NT, 2000 o XP no puede localizar la DLL, LoadLibrary devolverá el código de error 2 (el archivo no encontrado) o la vinculación implícita hace que el módulo principal Error al cargar.

Para obtener información acerca de cómo Windows 95 registra archivos DLL de 16 bits como KnownDLLs ver el artículo siguiente en Microsoft Knowledge Base:
141969Clave de registro de Windows 95 utiliza Known16DLLs para buscar archivos DLL de 16 bits

Archivos DLL: 32-bit

Para la clave del registro KnownDLLs de DLL de 32 bits se encuentra la clave del registro en:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
nombre de valor de REG_SZ el registro es el nombre del archivo DLL sin la extensión. Los datos del valor del registro son el nombre de la DLL con la extensión. Esta entrada afecta a la DLL cargadas sólo implícitamente, no archivos DLL cargados mediante la API de LoadLibrary().

Sin esta entrada, Windows NT utiliza el siguiente orden de búsqueda para localizar la DLL:
  1. El directorio del archivo ejecutable para el proceso que se carga la DLL.
  2. El directorio actual del proceso que está cargando la DLL.
  3. El directorio \Winnt\System32.
  4. El directorio \WINNT.
  5. Un directorio indicado en la variable de entorno path.
Con la entrada del registro KnownDLLs, Windows NT utiliza el siguiente orden de búsqueda para localizar la DLL:
  1. El directorio \Winnt\System32.
  2. El directorio del archivo ejecutable para el proceso que se carga la DLL.
  3. El directorio actual del proceso que está cargando la DLL.
  4. El directorio \WINNT.
  5. Un directorio indicado en la variable de entorno PATH.
Si la DLL no se encuentra en cualquiera de las ubicaciones mencionadas anteriormente, al vinculación implícita produce el módulo principal Error al cargar.

Un archivo DLL se trata como un KnownDLL si un KnownDLL se vincule implícitamente a él. Por ejemplo, MAIN.DLL utiliza funciones de CHILD.DLL. Si aparece en la clave del registro KnownDLLs MAIN.DLL, Windows NT trata también CHILD.DLL como un KnownDLL. Otra aplicación o DLL que utiliza CHILD.DLL utilizará la DLL que se vinculó a MAIN.DLL.

Windows asigna KnownDLLs de 32 bits en tiempo de inicio. Cambiar el nombre o mover el archivo DLL no tiene ningún efecto en el que se cargará una aplicación DLL; sigue al que estaba en \Winnt\System32 en tiempo de inicio.

Para modificar cómo se carga Windows KnownDLLs utilice el valor de registro de ExcludeFromKnownDlls ubicado en:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
Nota: utilice RegEdt32 en lugar de RegEdit para modificar este valor del registro.

Este valor del Registro REG_MULTI_SZ contiene nombres de archivos DLL en formato 8.3, una DLL por cadena. Si aparece un archivo DLL en ExcludeFromKnownDlls, a continuación, Windows no trata el archivo DLL como KnownDLL, incluso si aparece en la clave del registro KnownDLLs. Esto resulta útil desarrollar una DLL que se utiliza por muchos otro KnownDLLs y es importante reemplazar y probar generaciones nuevas sin reiniciar Windows.

Realizar cambios en las claves del Registro mencionadas requiere privilegios administrativos en el equipo local. El uso de KnownDLLs protege el sistema de alguien aparentemente reemplazar API colocando un rogue DLL en el directorio de la aplicación.

Para obtener información acerca de cómo Windows 95 registra archivos DLL de 32 bits como KnownDLLs ver el artículo siguiente en Microsoft Knowledge Base:
151646Clave de registro de Windows 95 utiliza KnownDLLs para buscar las DLL de 32 bits
AVISO: Utilizar el Editor del Registro incorrectamente puede provocar problemas graves que conlleven la reinstalación del sistema operativo. Microsoft no garantizar que los problemas resultantes del uso incorrecto del Editor del Registro puedan resolverse. Utilice el Editor del Registro bajo su responsabilidad.

Para obtener información acerca de cómo modificar el Registro, consulte el tema de Ayuda "Cambiar claves y valores" del Editor del Registro (Regedit.exe) o los temas "Agregar y eliminar información del Registro" y "Modificar información del Registro" en Regedt32.exe. Tenga en cuenta que debe hacer una copia de seguridad del Registro antes de modificarlo. Si está utilizando Windows NT, también deberá actualizar el Disco de reparación de emergencia (ERD).

Propiedades

Id. de artículo: 164501 - Última revisión: martes, 21 de noviembre de 2006 - Versión: 4.1
La información de este artículo se refiere a:
  • Microsoft Win32 Application Programming Interface sobre las siguientes plataformas
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Palabras clave: 
kbmt kbdll kbinfo kbkernbase kbregistry KB164501 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 164501

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com