Поделиться через


Функция SetSearchPathMode (winbase.h)

Задает режим каждого процесса, используемый функцией SearchPath при поиске файлов.

Синтаксис

BOOL SetSearchPathMode(
  [in] DWORD Flags
);

Параметры

[in] Flags

Используемый режим поиска.

Значение Значение
BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE
0x00000001
Включите безопасный режим поиска процесса.
BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE
0x00010000
Отключите безопасный режим поиска процесса.
BASE_SEARCH_PATH_PERMANENT
0x00008000
Необязательный флаг, используемый в сочетании с BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE , чтобы сделать этот режим постоянным для этого процесса. Для этого используется побитовая операция OR :

(BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE | BASE_SEARCH_PATH_PERMANENT)

Этот флаг нельзя сочетать с флагом BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE .

Возвращаемое значение

Если операция завершается успешно, функция SetSearchPathMode возвращает ненулевое значение.

Если операция завершается сбоем, функция SetSearchPathMode возвращает ноль. Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastError .

Если функция SetSearchPathMode завершается сбоем из-за недопустимого значения параметра, значение, возвращаемое функцией GetLastError , будет ERROR_INVALID_PARAMETER.

Если функция SetSearchPathMode завершается сбоем из-за недопустимого сочетания текущего состояния и значения параметра, значение, возвращаемое функцией GetLastError , будет ERROR_ACCESS_DENIED. Дополнительные сведения см. в разделе «Примечания».

Комментарии

Если функция SetSearchPathMode не была успешно вызвана для текущего процесса, режим поиска, используемый функцией SearchPath , получается из системного реестра. Дополнительные сведения см. в разделе SearchPath.

После успешного вызова функции SetSearchPathMode для текущего процесса параметр в системном реестре игнорируется в пользу последнего успешно заданного режима.

Если функция SetSearchPathMode была успешно вызвана для текущего процесса с флагами(BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE | BASE_SEARCH_PATH_PERMANENT), безопасный режим устанавливается для вызывающего процесса без возможности восстановления. Все последующие вызовы функции SetSearchPathMode из этого процесса, которые пытаются изменить режим поиска, завершатся сбоем с ERROR_ACCESS_DENIED из функции GetLastError .

Примечание Так как установка режима безопасного поиска навсегда не может быть отключена на протяжении всего срока действия процесса, для которого задано значение , его следует использовать с осторожностью. Это особенно верно для разработки библиотек DLL, когда этот параметр для всего процесса повлияет на пользователя библиотеки DLL.
 
Невозможно окончательно отключить безопасный режим поиска.

Эта функция не изменяет системный реестр.

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
SMB 3.0 Transparent Failover (TFO) Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да

Требования

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll
Распространяемые компоненты KB959426 в Windows XP с пакетом обновления 2 (SP2) и более поздних версиях и Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версий

См. также раздел

Функции управления файлами

SearchPath