Windows Info 第147回
Windows 10「October 2018 Update」でファイル消失の原因になったKnown Foldersって何?
2018年11月18日 10時00分更新
「October 2018 Update(RS5)」こと、Windows 10 Ver.1809の配信が再開された。このアップデートの配信が停止になったのは、Known Foldersに関連してファイルが消失するという問題が起こったためだと言われている。では、Known Foldersとは何なのだろうか?
Windows 95以前には決め打ちされていたシステムフォルダー
Windowsには、一定の役目を果たすように標準で作られるフォルダーがある。たとえば、ユーザーフォルダーやその下にある「ドキュメント」や「ピクチャ」といったフォルダーだ。そのほかにも「Program Files」フォルダーやWindowsフォルダーなど、標準で用意されるフォルダーは少なくない。
アプリケーションをインストールする場合、Windowsでは、標準のインストール先として「Program Folder」や「Program Folder(x86)」などが指定されている。
また、一部のアプリケーションは、システム関連モジュールなどをc:\Windows\System32などに配置する。また、インストール時に、スタートメニューなどにショートカットを登録することある。こうした一連の処理では、フォルダーの位置を特定することが問題になる。Windowsが指定するこうしたフォルダーは「システムフォルダー」などと呼ばれることがある。
Windows 95やNT 4.0以前では、こうした「システムフォルダー」は単純なフォルダーであり、移動させることは誤動作を引き起こすため、一般的には手をつけないでおくことになっていた。変更されることがないので、アプリケーションは直接パスを指定していた。
昔は環境変数によってシステムフォルダーの位置を定義
しかし、Windows 95やNT 4.0になって、こうしたフォルダーをエクスプローラーが管理するようになり、アプリケーションはなんらか情報を得て、「システムフォルダー」の位置を特定しなければならなくなった。
そのための仕組みを「CSIDL」(constant special item ID list)といい、個々のシステムフォルダーに番号を付け、APIにより実行時にパスを得るようにしたわけだ。
また、同種の方法として、一部の「システムフォルダー」は、環境変数にパスが定義されていた。たとえば「windir」はWindowsフォルダーを、「USERPROFILE」はユーザーフォルダーを定義する環境変数だ。
エクスプローラーからは、シェルショートカットを使うことで、システムフォルダーを絶対パスを指定することなくアクセスできる。たとえば、「shell:Profile」は、実行中のユーザーフォルダーを、「shell:Windows」は、Windowsフォルダーを表し、エクスプローラーのパス欄に入れると、該当フォルダーへ移動できる。
こうした仕組みは用意されたが、実際にはシステムフォルダーの位置が動くことはあまりないため、相変わらず多くのアプリケーションは、絶対パスをハードコーティング(変更できない形でプログラムに埋め込むこと)しているものがあった。その結果、「システムフォルダー」を移動させていると動かなくなるケースがあった。
このCSIDLは、Windows Vistaで「Known Folders」という仕組みに変更された。Vistaでは、より多くの「システムフォルダー」が定義され、「コンピューター」に代表される「仮想フォルダー」が多数導入された。また、アプリケーションからもKnown Foldersの変更などが可能になった。

この連載の記事
-
第409回
PC
WindowsでのDeviceIDの仕組み -
第408回
PC
Windows上でCPUの負荷状態を調べためのいくつかの方法 -
第407回
PC
2025年以降もWindows 10に延長サポートがある可能性!? 対応ハードを絞る真の本命は次期Windows? -
第406回
PC
Windowsにおける言語設定とは -
第405回
PC
WSLプレビューVer.2.0.7でMirroredネットワーク、DNSトンネリングを試す -
第404回
PC
開発者向けに性能が高い、Windowsの「開発ドライブ」を試す -
第403回
PC
WSL Ver.2.0の新機能「自動メモリ回収」を実際に試す -
第402回
PC
プレビュー版が登場したWSLのVer.2.0 新機能を具体的に見る -
第401回
PC
内部的な改良で便利になったWindows Terminal v1.19での新機能を確認 -
第400回
PC
Windowsにおける音声認識など、ボイス機能を整理 -
第399回
PC
Windowsではプロセスからプログラムに関するさまざまな情報が得られる - この連載の一覧へ