INF ファイルに表示されるディレクトリの多くは、特定のディレクトリを識別する番号であるディレクトリ識別子 (dirids) を使用して表現できます。 アプリケーションでは使用できますが、値が -1 から 32767 までの dirids に関連付けられているシステム定義のディレクトリを再割り当てすることはできません。
32768 ~ 65534、または 65536 以降のユーザー定義値を使用してディリドを作成するには、SetupSetDirectoryId 関数を使用します (Microsoft Windows SDK ドキュメントで説明します)。
値が 65535 の ダイリド は-1 の ダイリド と同義と見なされますが、後者 (dirid -1) が好ましいことに注意してください。
INF ファイルで dirids を使用する場合は、次の 2 つのガイドラインを考慮してください。
INF ファイル エントリの構文で dirid 値 (INF DestinationDirs セクションなど) を明示的に指定する場合は、その値は数値として表します。
次の例は、この構文を示しています。
[DestinationDirs] DefaultDestDir = 11 ; \system32 directory on Windows 2000 and later versionsINF ファイル エントリの構文でファイル パスを指定する場合は、システム指定の文字列置換を使用して、このパスの一部またはすべてを表すことができます。 この置換の形式は次のとおりです。
% dirid%
この形式は、パーセント (%) 文字の後に指定するディレクトリの ディリド が続き、その後に別のパーセント (%) 文字が続きます。 終了円記号 () 文字は、この式を次のファイル名またはパス内の追加のディレクトリから分離します。
次の例は、この構文を示しています。
[aic78xx_Service_Inst] ServiceBinary = %12%\aic78xx.sys完全に展開すると、前の例で示したパスは c:\windows\system32\drivers\aic78xx.sys になります (Windowsが c:\windows ディレクトリにインストールされていると仮定します)。 INF ファイルの INF 文字列セクションを除き、文字列の置換 (%の% 形式) は、文字列が想定される任意の場所で使用できることに注意してください。
次の 2 つの例は、文字列置換を使用 しない 方法を示しています。
[DestinationDirs] DefaultDestDir = %11% ; Error! - number expected [aic78xx_Service_Inst] ServiceBinary = 12\aic78xx.sys ; Error! - unknown directory name最初の例では、DefaultDestDir エントリの構文では、その値は数値である必要があります。 ただし、%11% 式は文字列に展開されます。 2 番目の例では、INF ライターは、 ServiceBinary エントリの値を、ドライバーを含むディレクトリ内のファイルに設定することを意図しています (詳細については、次の表を参照してください)。 このエラーは、Windowsが "12" という名前のディレクトリ内の指定されたファイルを検索するためです。これは、コンピューターに存在しない可能性があります。
次の表は、一般的に使用される いくつかのディリドと、それらが表すディレクトリを示しています。 デバイス INF ファイルとドライバー INF ファイルで最も一般的に指定される値は、表の上部に一覧表示されています。
ドライバー パッケージ分離要件の一部として、ドライバーはドライバー ストアから実行し、DIRID 13 を使用して、インストール時のドライバー パッケージ ファイルの場所を指定する必要があります。 Windows 11 以降、バージョン 24H2 では、dirids の一部が、WHQL 署名用に INF を送信するときに非推奨になりました。 詳細については、「 InfVerif /h」を参照してください。
| 値 | 宛先ディレクトリ | リリースは非推奨 |
|---|---|---|
01 |
SourceDrive:\pathname (INF ファイルのインストール元のディレクトリ) |
Windows 11 24H2 |
10 |
Windows ディレクトリ。 これは %SystemRoot% と同等です。 |
|
11 |
システム ディレクトリ。 これは、Windows 2000 以降のバージョンの Windows の%SystemRoot%\system32 と同じです。 |
|
12 |
Drivers ディレクトリ。 これは、Windows 2000 以降のバージョンでは %SystemRoot%\system32\drivers と同じです。 |
|
13 |
ドライバー パッケージの Driver Store ディレクトリ。 Windows 8.1 以降では、ドライバー パッケージがインポートされたドライバー ストア ディレクトリへのパスを指定します。 DelFiles を、DestinationDirs に dirid 13 が含まれるファイルに対して使用しないでください。 ファイルの SourceDiskFiles セクションの省略可能なサブディレクトリは、このファイルに適用されるエントリの DestinationDirs セクションのサブディレクトリと一致する必要があります。 CopyFiles を使用して、DestinationDirs に dirid 13 が含まれるファイルの名前を変更しないでください。 dirid 13 の使用方法の詳細については、「ドライバー ストアから実行する」を参照してください。 |
|
17 |
INF ファイル ディレクトリ |
Windows 11 24H2 |
18 |
ヘルプディレクトリ |
Windows 11 24H2 |
20 |
フォント ディレクトリ |
Windows 11 24H2 |
21 |
ビューアー ディレクトリ |
Windows 11 24H2 |
23 |
カラー ディレクトリ (ICM) (プリンター ドライバーのインストールには使用されません) |
|
24 |
システム ディスクのルート ディレクトリ。 これは、Windows ファイルがインストールされているディスクのルート ディレクトリです。 たとえば、 dirid 10 が "C:\winnt" の場合、 dirid 24 は "C:\" になります。 |
Windows 11 24H2 |
25 |
共有ディレクトリ |
Windows 11 24H2 |
30 |
ブート ディスクのルート ディレクトリ ("ARC システム パーティション" とも呼ばれます)。 (これは dirid 24 で表されるディレクトリと同じディレクトリである場合もあれば、そうでない場合もあります)。 |
Windows 11 24H2 |
50 |
システム ディレクトリ これは、\system%SystemRoot%と同じです。 |
Windows 11 24H2 |
51 |
スプール ディレクトリ (プリンター ドライバーのインストールには使用されません - プリンターの Dirids を参照) |
|
52 |
スプール ドライバー ディレクトリ (プリンター ドライバーのインストールには使用しません) |
|
53 |
ユーザー プロファイル ディレクトリ |
Windows 11 24H2 |
54 |
Ntldr.exe と Osloader.exe が配置されているディレクトリ |
Windows 11 24H2 |
55 |
印刷プロセッサ ディレクトリ (プリンター ドライバーのインストールには使用しない) |
|
-1 |
絶対パス |
Windows 11 24H2 |
16384 から 32767 までのDirid値は、特殊なシェル フォルダー用に予約されています。 次の表に、これらのフォルダー のダイリド 値を示します。
| 値 | シェルの特殊フォルダー | リリースを非推奨にする |
|---|---|---|
16406 |
[すべてのユーザー]\[スタート] メニュー |
Windows 11 24H2 |
16407 |
すべてのユーザー\スタート メニュー\プログラム |
Windows 11 24H2 |
16408 |
すべてのユーザー\スタート メニュー\プログラム\スタートアップ |
Windows 11 24H2 |
16409 |
すべてのユーザー\デスクトップ |
Windows 11 24H2 |
16415 |
すべてのユーザー\お気に入り |
Windows 11 24H2 |
16419 |
すべてのユーザー\アプリケーション データ |
Windows 11 24H2 |
16422 |
プログラム ファイル |
|
16425 |
%SystemRoot%\SysWOW64 |
|
16426 |
%ProgramFiles(x86)% |
|
16427 |
Program Files\Common |
|
16428 |
%ProgramFiles(x86)%\Common |
|
16429 |
すべてのユーザー\テンプレート |
Windows 11 24H2 |
16430 |
All Users\Documents |
Windows 11 24H2 |
Setupapi.h で定義されているこのテーブルの値に加えて、Shlobj.h で定義されている CSIDL_Xxx 値のいずれかを使用できます。 この表に記載されていないフォルダーの dirid 値を定義するには、CSIDL_Xxx 値に 16384 (0x4000) を追加します。 CSIDL_Xxx 値の詳細については、Windows SDK のドキュメントを参照してください。