Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Specifica un set predefinito di directory da cercare quando il processo chiamante carica una DLL. Questo percorso di ricerca viene usato quando LoadLibraryEx viene chiamato senza flag LOAD_LIBRARY_SEARCH .
Sintassi
BOOL SetDefaultDllDirectories(
[in] DWORD DirectoryFlags
);
Parametri
[in] DirectoryFlags
Directory da cercare. Questo parametro può essere qualsiasi combinazione dei valori seguenti.
| Value | Meaning |
|---|---|
|
Se questo valore viene usato, viene eseguita la ricerca nella directory di installazione dell'applicazione. |
|
Questo valore è una combinazione di LOAD_LIBRARY_SEARCH_APPLICATION_DIR, LOAD_LIBRARY_SEARCH_SYSTEM32 e LOAD_LIBRARY_SEARCH_USER_DIRS.
Questo valore rappresenta il numero massimo consigliato di directory che un'applicazione deve includere nel percorso di ricerca della DLL. |
|
Se si usa questo valore, viene eseguita la ricerca in \system32 %windows%. |
|
Se questo valore viene usato, viene eseguita la ricerca in qualsiasi percorso aggiunto in modo esplicito tramite la funzione AddDllDirectory o SetDllDirectory . Se sono state aggiunte più directory, l'ordine in cui viene eseguita la ricerca di tali directory non è specificato. |
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.
Osservazioni:
Il percorso di ricerca DLL è il set di directory che vengono cercate una DLL quando un percorso completo non viene specificato in una chiamata di funzione LoadLibrary o LoadLibraryEx oppure quando viene specificato un percorso completo della DLL, ma il sistema deve cercare DLL dipendenti. Per altre informazioni sul percorso di ricerca DLL standard, vedere Dynamic-Link Library Search Order.For more information about the standard DLL search path, seeDynamic-Link Library Search Order.
Il percorso di ricerca DLL standard contiene directory che possono essere vulnerabili a un attacco di pre-caricamento della DLL. Un'applicazione può usare la funzione SetDefaultDllDirectories per specificare un percorso di ricerca DLL predefinito per il processo che elimina le directory più vulnerabili e limita le altre directory in cui viene eseguita la ricerca. Il percorso di ricerca dll del processo si applica solo al processo chiamante e persiste per la durata del processo.
Se il parametro DirectoryFlags specifica più flag, le directory vengono cercate nell'ordine seguente:
- Directory contenente la DLL (LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR). Questa directory viene cercata solo per le dipendenze della DLL in fase di caricamento.
- Directory dell'applicazione (LOAD_LIBRARY_SEARCH_APPLICATION_DIR).
- I percorsi aggiunti in modo esplicito al percorso di ricerca dell'applicazione con la funzione AddDllDirectory (LOAD_LIBRARY_SEARCH_USER_DIRS) o la funzione SetDllDirectory . Se sono stati aggiunti più percorsi, l'ordine in cui vengono cercati i percorsi non è specificato.
- Directory di sistema (LOAD_LIBRARY_SEARCH_SYSTEM32).
Non è possibile ripristinare il percorso di ricerca DLL standard o rimuovere qualsiasi directory specificata con SetDefaultDllDirectories dal percorso di ricerca. Tuttavia, il percorso di ricerca DLL del processo può essere sottoposto a override chiamando LoadLibraryEx con uno o più flag di LOAD_LIBRARY_SEARCH e le directory aggiunte con AddDllDirectory possono essere rimosse chiamando RemoveDllDirectory.
Windows 7, Windows Server 2008 R2, Windows Vista e Windows Server 2008: Per chiamare questa funzione in un'applicazione, usare la funzione GetProcAddress per recuperarne l'indirizzo da Kernel32.dll. KB2533623 deve essere installato nella piattaforma di destinazione.
Requisiti
| Requisito | Value |
|---|---|
| Client minimo supportato | Windows 8 [solo app desktop],KB2533623 in Windows 7, Windows Server 2008 R2, Windows Vista e Windows Server 2008 |
| Server minimo supportato | Windows Server 2012 [solo app desktop] |
| Piattaforma di destinazione | Windows |
| Header | libloaderapi.h (include Windows.h) |
| Library | kernel32. Movimento di liberazione |
| DLL | Kernel32.dll |
Vedere anche
Ordine di ricerca della libreriaDynamic-Link