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 関数は 0 以外の値を返します。

操作が失敗した場合、 SetSearchPathMode 関数は 0 を返します。 エラーの詳細情報を得るには、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 プロトコル はい
SMB 3.0 Transparent Failover (TFO) はい
スケールアウト ファイル共有 (SO) を使う SMB 3.0 はい
クラスターの共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) はい

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll
再頒布可能パッケージ SP2 以降と Windows Server 2003 SP1 以降を使用した Windows XP でのKB959426

関連項目

File Management 関数

SearchPath