Função SetSearchPathMode (winbase.h)

Define o modo por processo que a função SearchPath usa ao localizar arquivos.

Sintaxe

BOOL SetSearchPathMode(
  [in] DWORD Flags
);

Parâmetros

[in] Flags

O modo de pesquisa a ser usado.

Valor Significado
BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE
0x00000001
Habilite o modo de pesquisa de processo seguro para o processo.
BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE
0x00010000
Desabilite o modo de pesquisa de processo seguro para o processo.
BASE_SEARCH_PATH_PERMANENT
0x00008000
Sinalizador opcional a ser usado em combinação com BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE para tornar esse modo permanente para esse processo. Isso é feito pela operação OR bit a bit:

(BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE | BASE_SEARCH_PATH_PERMANENT)

Esse sinalizador não pode ser combinado com o sinalizador BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE .

Valor retornado

Se a operação for concluída com êxito, a função SetSearchPathMode retornará um valor diferente de zero.

Se a operação falhar, a função SetSearchPathMode retornará zero. Para obter informações de erro estendidas, chame a função GetLastError.

Se a função SetSearchPathMode falhar porque um valor de parâmetro não é válido, o valor retornado pela função GetLastError será ERROR_INVALID_PARAMETER.

Se a função SetSearchPathMode falhar porque a combinação do estado atual e do valor do parâmetro não for válida, o valor retornado pela função GetLastError será ERROR_ACCESS_DENIED. Para obter mais informações, consulte a seção Comentários.

Comentários

Se a função SetSearchPathMode não tiver sido chamada com êxito para o processo atual, o modo de pesquisa usado pela função SearchPath será obtido do registro do sistema. Para obter mais informações, consulte SearchPath.

Depois que a função SetSearchPathMode tiver sido chamada com êxito para o processo atual, a configuração no registro do sistema será ignorada em favor do modo definido com êxito mais recentemente.

Se a função SetSearchPathMode tiver sido chamada com êxito para o processo atual com Sinalizadores definido (BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE | BASE_SEARCH_PATH_PERMANENT)como , o modo de segurança será definido permanentemente para o processo de chamada. Todas as chamadas subsequentes para a função SetSearchPathMode de dentro desse processo que tentam alterar o modo de pesquisa falharão com ERROR_ACCESS_DENIED da função GetLastError .

Nota Como a configuração do modo de pesquisa segura permanentemente não pode ser desabilitada durante a vida útil do processo para o qual foi definido, ela deve ser usada com cuidadosa consideração. Isso é particularmente verdadeiro para o desenvolvimento de DLL, em que o usuário da DLL será afetado por essa configuração em todo o processo.
 
Não é possível desabilitar permanentemente o modo de pesquisa segura.

Essa função não modifica o registro do sistema.

No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 Sim
TFO (Failover transparente) do SMB 3.0 Sim
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) Sim
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim

Requisitos

   
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winbase.h (incluir Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll
Redistribuível KB959426 no Windows XP com SP2 e posterior e Windows Server 2003 com SP1 e posterior

Confira também

Funções de gerenciamento de arquivos

SearchPath