Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Spécifie un ensemble par défaut de répertoires à rechercher lorsque le processus appelant charge une DLL. Ce chemin de recherche est utilisé lorsque LoadLibraryEx est appelé sans indicateur LOAD_LIBRARY_SEARCH .
Syntaxe
BOOL SetDefaultDllDirectories(
[in] DWORD DirectoryFlags
);
Paramètres
[in] DirectoryFlags
Répertoires à rechercher. Ce paramètre peut être n’importe quelle combinaison des valeurs suivantes.
| Valeur | Meaning |
|---|---|
|
Si cette valeur est utilisée, le répertoire d’installation de l’application est recherché. |
|
Cette valeur est une combinaison de LOAD_LIBRARY_SEARCH_APPLICATION_DIR, de LOAD_LIBRARY_SEARCH_SYSTEM32 et de LOAD_LIBRARY_SEARCH_USER_DIRS.
Cette valeur représente le nombre maximal recommandé de répertoires qu’une application doit inclure dans son chemin de recherche DLL. |
|
Si cette valeur est utilisée, %windows%\system32 est recherché. |
|
Si cette valeur est utilisée, tout chemin d’accès explicitement ajouté à l’aide de la fonction AddDllDirectory ou SetDllDirectory est recherché. Si plusieurs répertoires ont été ajoutés, l’ordre dans lequel ces répertoires sont recherchés n’est pas spécifié. |
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Remarques
Le chemin de recherche DLL est l’ensemble de répertoires qui sont recherchés pour une DLL lorsqu’un chemin d’accès complet n’est pas spécifié dans un appel de fonction LoadLibrary ou LoadLibraryEx , ou lorsqu’un chemin d’accès complet à la DLL est spécifié, mais que le système doit rechercher des DLL dépendantes. Pour plus d’informations sur le chemin de recherche DLL standard, consultez Dynamic-Link ordre de recherche de bibliothèque.
Le chemin de recherche DLL standard contient des répertoires qui peuvent être vulnérables à une attaque de préchargement DLL. Une application peut utiliser la fonction SetDefaultDllDirectories pour spécifier un chemin de recherche DLL par défaut pour le processus qui élimine les répertoires les plus vulnérables et limite les autres répertoires qui sont recherchés. Le chemin de recherche DLL de processus s’applique uniquement au processus appelant et persiste pour la durée de vie du processus.
Si le paramètre DirectoryFlags spécifie plusieurs indicateurs, les répertoires sont recherchés dans l’ordre suivant :
- Répertoire qui contient la DLL (LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR). Ce répertoire est recherché uniquement pour les dépendances de la DLL en cours de chargement.
- Répertoire de l’application (LOAD_LIBRARY_SEARCH_APPLICATION_DIR).
- Chemins d’accès explicitement ajoutés au chemin de recherche d’application avec la fonction AddDllDirectory (LOAD_LIBRARY_SEARCH_USER_DIRS) ou la fonction SetDllDirectory . Si plusieurs chemins d’accès ont été ajoutés, l’ordre dans lequel les chemins d’accès sont recherchés n’est pas spécifié.
- Répertoire système (LOAD_LIBRARY_SEARCH_SYSTEM32).
Il n’est pas possible de revenir au chemin de recherche DLL standard ou de supprimer tout répertoire spécifié avec SetDefaultDllDirectories du chemin de recherche. Toutefois, le chemin de recherche DLL du processus peut être remplacé en appelant LoadLibraryEx avec un ou plusieurs indicateurs de LOAD_LIBRARY_SEARCH , et les répertoires ajoutés avec AddDllDirectory peuvent être supprimés en appelant RemoveDllDirectory.
Windows 7, Windows Server 2008 R2, Windows Vista et Windows Server 2008 : Pour appeler cette fonction dans une application, utilisez la fonction GetProcAddress pour récupérer son adresse à partir de Kernel32.dll. KB2533623 devez être installé sur la plateforme cible.
Spécifications
| Requirement | Valeur |
|---|---|
| Client minimum requis | Windows 8 [applications de bureau uniquement],KB2533623 sur Windows 7, Windows Server 2008 R2, Windows Vista et Windows Server 2008 |
| Serveur minimal pris en charge | Windows Server 2012 [applications de bureau uniquement] |
| plateforme cible | Fenêtres |
| Header | libloaderapi.h (include Windows.h) |
| Library | noyau32. Lib |
| DLL | Kernel32.dll |
Voir aussi
ordre de recherche de bibliothèqueDynamic-Link