Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Especifica um conjunto padrão de diretórios a serem pesquisados quando o processo de chamada carregar uma DLL. Esse caminho de pesquisa é usado quando LoadLibraryEx é chamado sem sinalizadores de LOAD_LIBRARY_SEARCH .
Sintaxe
BOOL SetDefaultDllDirectories(
[in] DWORD DirectoryFlags
);
Parâmetros
[in] DirectoryFlags
Os diretórios a serem pesquisados. Esse parâmetro pode ser qualquer combinação dos valores a seguir.
| Value | Meaning |
|---|---|
|
Se esse valor for usado, o diretório de instalação do aplicativo será pesquisado. |
|
Esse valor é uma combinação de LOAD_LIBRARY_SEARCH_APPLICATION_DIR, LOAD_LIBRARY_SEARCH_SYSTEM32 e LOAD_LIBRARY_SEARCH_USER_DIRS.
Esse valor representa o número máximo recomendado de diretórios que um aplicativo deve incluir em seu caminho de pesquisa de DLL. |
|
Se esse valor for usado, %windows%\system32 será pesquisado. |
|
Se esse valor for usado, qualquer caminho adicionado explicitamente usando a função AddDllDirectory ou SetDllDirectory será pesquisado. Se mais de um diretório tiver sido adicionado, a ordem na qual esses diretórios são pesquisados não será especificada. |
Valor de retorno
Se a função for bem-sucedida, o valor retornado não será zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Observações
O caminho de pesquisa de DLL é o conjunto de diretórios que são pesquisados para uma DLL quando um caminho completo não é especificado em uma chamada de função LoadLibrary ou LoadLibraryEx , ou quando um caminho completo para a DLL é especificado, mas o sistema deve procurar por DLLs dependentes. Para obter mais informações sobre o caminho de pesquisa de DLL padrão, consulte Dynamic-Link Ordem de Pesquisa da Biblioteca.
O caminho de pesquisa DLL padrão contém diretórios que podem ser vulneráveis a um ataque de pré-carregamento de DLL. Um aplicativo pode usar a função SetDefaultDllDirectories para especificar um caminho de pesquisa de DLL padrão para o processo que elimina os diretórios mais vulneráveis e limita os outros diretórios pesquisados. O caminho de pesquisa de DLL do processo aplica-se apenas ao processo de chamada e persiste durante a vida útil do processo.
Se o parâmetro DirectoryFlags especificar mais de um sinalizador, os diretórios serão pesquisados na seguinte ordem:
- O diretório que contém a DLL (LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR). Esse diretório é pesquisado apenas por dependências da DLL que está sendo carregada.
- O diretório do aplicativo (LOAD_LIBRARY_SEARCH_APPLICATION_DIR).
- Caminhos adicionados explicitamente ao caminho de pesquisa do aplicativo com a função AddDllDirectory (LOAD_LIBRARY_SEARCH_USER_DIRS) ou a função SetDllDirectory . Se mais de um caminho tiver sido adicionado, a ordem na qual os caminhos são pesquisados não será especificada.
- O diretório do sistema (LOAD_LIBRARY_SEARCH_SYSTEM32).
Não é possível reverter para o caminho de pesquisa DLL padrão ou remover qualquer diretório especificado com SetDefaultDllDirectories do caminho de pesquisa. No entanto, o caminho de pesquisa de DLL do processo pode ser substituído chamando LoadLibraryEx com um ou mais sinalizadores LOAD_LIBRARY_SEARCH e os diretórios adicionados com AddDllDirectory podem ser removidos chamando RemoveDllDirectory.
Windows 7, Windows Server 2008 R2, Windows Vista e Windows Server 2008: Para chamar essa função em um aplicativo, use a função GetProcAddress para recuperar seu endereço de Kernel32.dll. KB2533623 deve ser instalado na plataforma de destino.
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | Windows 8 [somente aplicativos da área de trabalho], KB2533623 no Windows 7, Windows Server 2008 R2, Windows Vista e Windows Server 2008 |
| Servidor mínimo compatível | Windows Server 2012 [somente aplicativos da área de trabalho] |
| da Plataforma de Destino |
Windows |
| Header | libloaderapi.h (inclua Windows.h) |
| Library | kernel32. Lib |
| de DLL |
Kernel32.dll |
Consulte também
Ordem de Pesquisa da BibliotecaDynamic-Link
Segurança da Biblioteca deDynamic-Link