Partager via


SetSearchPathMode, fonction (winbase.h)

Définit le mode par processus utilisé par la fonction SearchPath lors de la localisation de fichiers.

Syntaxe

BOOL SetSearchPathMode(
  [in] DWORD Flags
);

Paramètres

[in] Flags

Mode de recherche à utiliser.

Valeur Signification
BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE
0x00000001
Activez le mode de recherche de processus sécurisé pour le processus.
BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE
0x00010000
Désactivez le mode de recherche de processus sécurisé pour le processus.
BASE_SEARCH_PATH_PERMANENT
0x00008000
Indicateur facultatif à utiliser en combinaison avec BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE pour rendre ce mode permanent pour ce processus. Pour ce faire, l’opération OR au niveau du bit est effectuée :

(BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE | BASE_SEARCH_PATH_PERMANENT)

Cet indicateur ne peut pas être combiné avec l’indicateur BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE .

Valeur retournée

Si l’opération se termine correctement, la fonction SetSearchPathMode retourne une valeur différente de zéro.

Si l’opération échoue, la fonction SetSearchPathMode retourne zéro. Pour obtenir des informations détaillées sur l’erreur, appelez la fonction GetLastError.

Si la fonction SetSearchPathMode échoue parce qu’une valeur de paramètre n’est pas valide, la valeur retournée par la fonction GetLastError est ERROR_INVALID_PARAMETER.

Si la fonction SetSearchPathMode échoue parce que la combinaison de l’état actuel et de la valeur de paramètre n’est pas valide, la valeur retournée par la fonction GetLastError sera ERROR_ACCESS_DENIED. Pour plus d'informations, consultez la section Notes.

Notes

Si la fonction SetSearchPathMode n’a pas été correctement appelée pour le processus actuel, le mode de recherche utilisé par la fonction SearchPath est obtenu à partir du registre système. Pour plus d’informations, consultez SearchPath.

Une fois que la fonction SetSearchPathMode a été appelée avec succès pour le processus actuel, le paramètre dans le registre système est ignoré au profit du mode le plus récemment défini avec succès.

Si la fonction SetSearchPathMode a été appelée avec succès pour le processus actuel avec indicateurs définis sur (BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE | BASE_SEARCH_PATH_PERMANENT), le mode sans échec est défini de façon permanente pour le processus appelant. Tous les appels ultérieurs à la fonction SetSearchPathMode à partir de ce processus qui tentent de modifier le mode de recherche échouent avec ERROR_ACCESS_DENIED à partir de la fonction GetLastError .

Note Étant donné que la définition permanente du mode de recherche sans échec ne peut pas être désactivée pendant la durée du processus pour lequel est défini, il doit être utilisé avec attention. Cela est particulièrement vrai pour le développement de DLL, où l’utilisateur de la DLL sera affecté par ce paramètre à l’échelle du processus.
 
Il n’est pas possible de désactiver définitivement le mode de recherche sans échec.

Cette fonction ne modifie pas le registre système.

Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.

Technologie Prise en charge
Protocole Server Message Block (SMB) 3.0 Oui
Basculement transparent SMB 3.0 (TFO) Oui
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) Oui
Système de fichiers du volume partagé de cluster (CsvFS) Oui
Système de fichiers résilient (ReFS) Oui

Configuration requise

   
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll
Composant redistribuable KB959426 sur Windows XP avec SP2 et versions ultérieures et Windows Server 2003 avec SP1 et versions ultérieures

Voir aussi

Fonctions de gestion des fichiers

SearchPath