INFO: entrada de registo KnownDLLs Windows NT/2000/XP utiliza para localizar a dll

Traduções de Artigos Traduções de Artigos
Artigo: 164501 - Ver produtos para os quais este artigo se aplica.
importante : Este artigo contém informações sobre como modificar o registo. Antes de modificar o registo, certifique-se de que efectua uma cópia de segurança e de que compreende como o restaurar o registo se ocorrer um problema. Para obter informações sobre como efectuar uma cópia de segurança, restaurar e editar o registo, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
256986Descrição do registo do Microsoft Windows
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Microsoft Windows NT, Windows 2000 e Windows XP utiliza as entradas de registo KnownDLLs para procurar as DLL de 32 bits ou 16 bits ao carregar a DLL. DLL de 32 bits a KnownDLLs entrada de registo afecta apenas a procura de DLLs carregadas implicitamente. DLL de 16 bits a KnownDLLs entrada de registo afecta a procura de ambas as DLLs implicitamente e explicitamente carregadas. Se incluir um nome DLL incorrecta na entrada do registo KnownDLLs, LoadLibrary no Windows NT/2000/XP WOW Falha ao carregar uma DLL localizada no directório actual da aplicação.

Mais Informação

Windows NT/2000/XP utiliza a entrada de registo KnownDLLs para determinar a DLL de uma aplicação irá utilizar. Existem duas entradas de registo KnownDLLs diferentes: uma que afecta o carregamento da DLL de 32 bits e outra que afecta o carregamento das DLLs de 16 bits. Uma DLL na entrada de registo KnownDLLs é por vezes referida como um "KnownDLL" neste artigo.

DLL: 16-bit

Para DLL de 16 bits, o valor de registo KnownDLLs encontra na seguinte chave:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW
				
KnownDLLs O valor de registo é uma cadeia REG_SZ com nomes DLL no formato 8.3, separados por um espaço. O valor de KnownDLLs afecta ambas as DLLs implicitamente e explicitamente carregadas.

Sem valor de registo KnownDLLs, WOW do Windows NT utiliza a seguinte ordem de procura para localizar a DLL:
  1. O directório actual da tarefa que está a utilizar a DLL.
  2. O directório \Winnt.
  3. O directório \WINNT\SYSTEM.
  4. O directório \WINNT\SYSTEM32.
  5. O directório do executável da tarefa está a utilizar a DLL.
  6. Um directório listado na variável de ambiente PATH.
Com o valor de registo KnownDLLs, Windows NT WOW procura apenas no directório \WINNT\SYSTEM32 para localizar a DLL. Se KnownDLLs inclui uma entrada para uma DLL que não está localizada no directório \WINNT\SYSTEM32, LoadLibrary Falha ao carregar a DLL, mesmo se a DLL estiver localizada em qualquer das 5 outras localizações acima.

Se WOW do Windows NT/2000/XP não conseguir localizar a DLL, LoadLibrary devolve código de erro 2 (ficheiro não encontrado) ou a ligação implícita faz com que o módulo principal não conseguir carregar.

Para obter informações sobre como o Windows 95 regista as DLL de 16 bits como KnownDLLs consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
141969Windows 95 utiliza Known16DLLs registo chave para localizar a DLL de 16 bits

DLL: 32-bit

Para DLL de 32 bits a KnownDLLs chave de registo for encontrado no:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
nome de valor de registo REG_SZ O é o nome da DLL sem a extensão. Os dados do valor de registo são o nome da DLL com a extensão. Esta entrada afecta DLLs carregadas apenas implicitamente, as DLLs carregadas utilizando a API de LoadLibrary().

Sem esta entrada, Windows NT utiliza a seguinte ordem de procura para localizar a DLL:
  1. O directório do executável para o processo que está a carregar a DLL.
  2. O directório actual do processo que está a carregar a DLL.
  3. O directório \WINNT\SYSTEM32.
  4. O directório \Winnt.
  5. Um directório listado na variável de ambiente de caminho.
Com a entrada de registo KnownDLLs, Windows NT utiliza a seguinte ordem de procura para localizar a DLL:
  1. O directório \WINNT\SYSTEM32.
  2. O directório do executável para o processo que está a carregar a DLL.
  3. O directório actual do processo que está a carregar a DLL.
  4. O directório \Winnt.
  5. Um directório listado na variável de ambiente PATH.
Se a DLL não se encontrar em qualquer das localizações acima mencionadas, a ligação implícita faz com que o módulo principal Falha ao carregar.

Uma DLL é tratada como um KnownDLL se um KnownDLL implicitamente ligar à mesma. Por exemplo, MAIN.DLL utiliza funções de CHILD.DLL. Se MAIN.DLL estiver listado na chave de registo KnownDLLs, em seguida, Windows NT também trata CHILD.DLL como um KnownDLL. Outra aplicação ou DLL que utiliza CHILD.DLL utilizará a DLL que estava ligada a MAIN.DLL.

Windows NT mapeia KnownDLLs de 32 bits durante o arranque. Mudar o nome ou mover a DLL não tem qualquer efeito no qual irá carregar DLL uma aplicação; ainda utiliza aquela que estava a ser \WINNT\SYSTEM32 durante o arranque.

Para alterar a forma como o Windows NT carrega KnownDLLs utilizar o valor do registo ExcludeFromKnownDlls localizado em:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
Nota: Utilize RegEdt32 em vez de RegEdit para modificar este valor de registo.

Este valor de registo REG_MULTI_SZ contém nomes de dll no formato 8.3, uma DLL por cadeia. Se uma DLL estiver listada na ExcludeFromKnownDlls, em seguida, Windows NT não tratar a DLL como KnownDLL, mesmo se estiver listado na chave de registo KnownDLLs. Isto é útil quando desenvolver uma DLL que é utilizada por muitos outros KnownDLLs e é importante substituir e testar compilações novas sem reiniciar o Windows NT.

Efectuar alterações as chaves de registo supra requer privilégios administrativos para o computador local. A utilização de KnownDLLs protege o sistema de alguém substituir deceptively APIs, colocando um DLL não controlado no directório da aplicação.

Para obter informações sobre como o Windows 95 regista as DLL de 32 bits como KnownDLLs consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
151646Windows 95 utiliza KnownDLLs registo chave para localizar a DLL de 32 bits
Aviso: A utilização incorrecta do Editor de registo pode provocar problemas graves que poderão forçar a reinstalação do sistema operativo. Microsoft não garante que os problemas resultantes da utilização incorrecta do Editor de registo possam ser resolvidos. As suas próprias risco da utilização do Editor de registo.

Para obter informações sobre como editar o registo, consulte o tópico de ajuda "Alterar chaves e valores" no Editor de registo (Regedit.exe) ou os tópicos de ajuda "Adicionar e eliminar informações no registo" e "Editar dados do registo" do Regedt32.exe. Nota efectuar uma que deve cópia de segurança do registo antes de o editar. Se estiver a executar Windows NT, deverá também actualizar o disco de reparação de emergência (ERD, Emergency Repair Disk).

Propriedades

Artigo: 164501 - Última revisão: 21 de novembro de 2006 - Revisão: 4.1
A informação contida neste artigo aplica-se a:
  • Microsoft Win32 Application Programming Interface nas seguintes plataformas
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Palavras-chave: 
kbmt kbdll kbinfo kbkernbase kbregistry KB164501 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 164501

Submeter comentários

 

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