INFO: Windows NT/2000/XP usos do registro do KnownDLLs entrada para localizar DLLs

Traduções deste artigo Traduções deste artigo
ID do artigo: 164501 - Exibir os produtos aos quais esse artigo se aplica.
importante : Este artigo contém informações sobre como modificar o registro. Antes de modificar o registro, certifique-se de backup e certifique-se que você saiba como restaurar o registro se ocorrer um problema. Para obter informações sobre como fazer backup, restaurar e editar o registro, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
256986Descrição do registro do Microsoft Windows
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Microsoft Windows NT, Windows 2000 e Windows XP usa as entradas de registro do KnownDLLs para procurar por DLLs de 32 bits ou 16 bits ao carregar a DLL. DLLs de 32 bits do KnownDLLs entrada do registro afeta apenas a pesquisa para DLLs carregadas implicitamente. DLLs de 16 bits do KnownDLLs entrada do registro afeta a pesquisa para ambas as DLLs carregadas implícita e explicitamente. Se você incluir um nome DLL incorreta na entrada de registro do KnownDLLs, LoadLibrary no Windows NT/2000/XP WOW Falha ao carregar uma DLL localizada no diretório atual do aplicativo.

Mais Informações

Windows NT/2000/XP usa a entrada de registro do KnownDLLs para determinar que DLL um aplicativo irá usar. Há duas entradas de registro KnownDLLs diferentes: uma que afeta o carregamento de DLLs de 32 bits e outra que afeta o carregamento de DLLs de 16 bits. Uma DLL na entrada do Registro KnownDLLs às vezes é chamada de "KnownDLL" neste artigo.

DLLs: 16-bits

Para DLLs de 16 bits, o valor de registro do KnownDLLs for encontrado na seguinte chave:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW
				
KnownDLLs O valor de registro é uma seqüência de caracteres REG_SZ com nomes DLL no formato 8.3, separados por um espaço. O valor KnownDLLs afeta as duas DLLs carregadas implícita e explicitamente.

Sem o valor de registro do KnownDLLs, WOW do Windows NT usa a seguinte ordem de pesquisa para localizar a DLL:
  1. O diretório atual da tarefa que está usando a DLL.
  2. A pasta \Winnt.
  3. O diretório \WINNT\SYSTEM.
  4. O diretório \WINNT\SYSTEM32.
  5. A pasta do executável da tarefa que está usando a DLL.
  6. Um diretório na variável de ambiente PATH.
Com o valor do registro do KnownDLLs, Windows NT WOW apenas examina no diretório \WINNT\SYSTEM32 para localizar a DLL. Se KnownDLLs inclui uma entrada para uma DLL que não é localizada no diretório \WINNT\SYSTEM32, LoadLibrary Falha ao carregar a DLL, mesmo se a DLL estiver localizada em qualquer um dos 5 outros locais acima.

Se Windows NT/2000/XP WOW falhar localizar a DLL, LoadLibrary retorna código de erro 2 (arquivo não encontrado) ou a vinculação implícita faz com que o módulo pai Falha ao carregar.

Para obter informações sobre como o Windows 95 registra DLLs de 16 bits como KnownDLLs consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
141969Chave de registro de Known16DLLs do Windows 95 usa para localizar as DLLs de 16 bits

DLLs: 32-bit

Para DLLs de 32 bits do KnownDLLs chave do registro é encontrado em:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
REG_SZ O nome de valor de registro é o nome da DLL sem a extensão. Os dados do valor do Registro são o nome da DLL com a extensão. Essa entrada afeta DLLs carregadas somente implicitamente, não as DLLs carregadas usando a API LoadLibrary().

Sem essa entrada, Windows NT utiliza a seguinte ordem de pesquisa para localizar a DLL:
  1. A pasta do executável para o processo que está carregando a DLL.
  2. O diretório atual do processo que está carregando a DLL.
  3. O diretório \WINNT\SYSTEM32.
  4. A pasta \Winnt.
  5. Um diretório listado na variável de ambiente caminho.
Com entrada de registro do KnownDLLs, Windows NT utiliza a seguinte ordem de pesquisa para localizar a DLL:
  1. O diretório \WINNT\SYSTEM32.
  2. A pasta do executável para o processo que está carregando a DLL.
  3. O diretório atual do processo que está carregando a DLL.
  4. A pasta \Winnt.
  5. Um diretório na variável de ambiente PATH.
Se a DLL não estiver localizada em qualquer um dos locais mencionados acima, a vinculação implícita causará falha ao carregar o módulo pai.

Uma DLL é tratada como um KnownDLL se um KnownDLL implicitamente links para ele. Por exemplo, MAIN.DLL usa funções de CHILD.DLL. Se MAIN.DLL estiver listado na chave de registro do KnownDLLs, em seguida, Windows NT trata também CHILD.DLL como um KnownDLL. Outro aplicativo ou DLL que usa CHILD.DLL usará a DLL que estava vinculada MAIN.DLL.

Windows NT mapeia KnownDLLs de 32 bits no momento da inicialização. Renomeando ou movendo a DLL não tem qualquer efeito na qual DLL um aplicativo será carregado; ele ainda usa a que estava em \WINNT\SYSTEM32 no momento da inicialização.

Para alterar como o Windows NT carrega KnownDLLs use o valor de registro ExcludeFromKnownDlls localizado em:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
Observação: usar RegEdt32 em vez de RegEdit para modificar esse valor do Registro.

Esse valor de Registro REG_MULTI_SZ contém nomes de DLLs no formato 8.3, uma DLL por seqüência de caracteres. Se uma DLL é listada na ExcludeFromKnownDlls, em seguida, Windows NT não trata a DLL como um KnownDLL, mesmo se ele estiver listado na chave de registro do KnownDLLs. Isso é útil quando você desenvolver uma DLL que é usada por muitos outros KnownDLLs e é importante substituir e testar novas compilações sem reinicializar o Windows NT.

Fazer alterações em chaves do registro mencionada anteriormente requer privilégios administrativos no computador local. O uso do KnownDLLs protege o sistema de alguém extremamente substituindo APIs colocando um invasor DLL no diretório de aplicativo.

Para obter informações sobre como o Windows 95 registra DLLs de 32 bits como KnownDLLs consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
151646Chave de registro de KnownDLLs do Windows 95 usa para localizar as DLLs de 32 bits
Aviso: Usar o Editor do Registro incorretamente pode causar problemas sérios que talvez exijam a reinstalação do sistema operacional. A Microsoft não garante que problemas resultantes do uso incorreto do Editor do Registro possam ser resolvidos. Use o Editor do registro por sua própria conta e risco.

Para obter informações sobre como editar o registro, consulte o tópico da Ajuda "Alterando chaves e valores" no Editor do Registro (Regedit.exe) ou tópicos de Ajuda "Adicionar e excluir informações no Registro" e "Editar dados de registro" no Regedt32.exe. Observe que você deve fazer backup do registro antes de editá-lo. Se você estiver executando o Windows NT, atualize também seu disco de reparação de emergência.

Propriedades

ID do artigo: 164501 - Última revisão: terça-feira, 21 de novembro de 2006 - Revisão: 4.1
A informação contida neste artigo aplica-se a:
  • Interface de Programação de Aplicativos do Microsoft Win32 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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