setSearchPathMode 函式 (winbase.h)

設定 搜尋路徑 函式在尋找檔案時所使用的個別進程模式。

語法

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 函式,並將 Flags 設定 (BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE | BASE_SEARCH_PATH_PERMANENT) 為 ,則安全模式會針對呼叫進程永久設定。 從嘗試變更搜尋模式的進程內,對SetSearchPathMode函式的任何後續呼叫都會失敗,且從GetLastError 函ERROR_ACCESS_DENIED

注意 因為設定安全搜尋模式在設定的進程存留期間無法永久停用,所以應該謹慎考慮。 這特別適用于 DLL 開發,DLL 的使用者將會受到此全進程設定的影響。
 
無法永久停用安全搜尋模式。

此函式不會修改系統登錄。

在 Windows 8 和 Windows Server 2012 中,下列技術支援此函式。

技術 支援
伺服器訊息區 (SMB) 3.0 通訊協定 Yes
SMB 3.0 透明容錯移轉 (TFO) Yes
具有向外延展檔案共用的 SMB 3.0 (SO)
叢集共用磁片區檔案系統 (CsvFS)
彈性檔案系統 (ReFS) Yes

規格需求

   
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限桌面應用程式]
目標平台 Windows
標頭 winbase.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll
可轉散發套件 在 Windows XP 上使用 SP2 和更新版本和 Windows Server 2003 SP1 和更新版本KB959426

另請參閱

檔案管理功能

SearchPath