許多出現在 INF 檔案中的目錄可以使用目錄識別符來表示(dirids),這些目錄是識別特定目錄的數位。 應用程式可以使用,但無法重新指派與 dirids 相關聯的系統定義目錄, 其值是從 -1 到 32767。
若要使用使用者定義的值從 32768 到 65534 或從 65536 開始建立 dirids,請使用 SetupSetDirectoryId 函式(詳情請參見 Microsoft Windows SDK 文件)。
請注意,值為 65535 的 dirid,會被視為與值為 -1 的 dirid 同義,但偏好後者 (dirid -1) 。
如果您想要在 INF 檔案中使用 dirids,請考慮下列兩個指導方針:
當 INF 檔案項目的語法明確指定 dirid 值時(例如,INF DestinationDirs 區段),則會以數位表示該值。
下列範例示範此語法:
[DestinationDirs] DefaultDestDir = 11 ; \system32 directory on Windows 2000 and later versions
當 INF 檔案項目的語法指定檔案路徑時,您可以使用系統提供的字串替代來表示部分或全部路徑。 此替代格式如下:
% dirid%
這個格式包含一個百分比(%)字元,接著是您要指定之目錄的 ,然後接著另一個百分比(%)字元。 結束反斜杠 () 字元會將此表示式與路徑中的下列檔名或其他目錄分隔。
下列範例示範此語法:
[aic78xx_Service_Inst] ServiceBinary = %12%\aic78xx.sys
完全展開時,上一個範例中顯示的路徑會變成 c:\windows\system32\驅動程式\aic78xx.sys(假設 Windows 安裝在 c:\windows 目錄中)。 請注意,字串替代或 %dirid% 表單可以在任何需要字串的位置使用,但不包括 INF 文件的 INF Strings 區段 。
下列兩個範例顯示應該如何使用字串替代 不要。
[DestinationDirs] DefaultDestDir = %11% ; Error! - number expected [aic78xx_Service_Inst] ServiceBinary = 12\aic78xx.sys ; Error! - unknown directory name
在第一個範例中,DefaultDestDir 項目的語法需要其值為數位。 不過,%11% 表示式會展開為字串。 在第二個範例中,INF 寫入器顯然打算將 ServiceBinary 項目的值設定為驅動程式目錄中的一個檔案(如需詳細資訊,請參閱下表)。 發生此錯誤的原因是 Windows 會在名為 「12」 的目錄中尋找指定的檔案,該檔案可能不存在在計算機上。
下表顯示數個常用的 目錄識別碼,以及它們所代表的目錄。 裝置 INF 檔案和驅動程式 INF 檔案最常指定的值會列在資料表頂端。
在 驅動程式套件隔離 需求中,驅動程式必須 從驅動程式存放區 執行,並使用 DIRID 13 指定安裝時驅動程式套件檔案的位置。 從 Windows 11 版本 24H2 開始,一些常用的 dirids 在提交 INF 以取得 WHQL 簽章時已經被淘汰。 如需詳細資訊,請參閱 InfVerif /h。
價值 | 目的地目錄 | 釋出版本已不再建議使用 |
---|---|---|
01 |
SourceDrive:\pathname (安裝 INF 檔案的目錄) |
Windows 11 24H2 |
10 |
Windows 目錄。 這相當於 %SystemRoot%。 |
|
11 |
系統目錄。 這相當於 Windows 2000 和更新版本的 %SystemRoot%\system32。 |
|
12 |
驅動程序目錄。 這相當於 windows 2000 和更新版本的 Windows %SystemRoot%\system32\驅動程式。 |
|
13 |
驅動程式套件的 Driver Store 目錄。 針對 Windows 8.1 和更新版本的 Windows,指定驅動程式已匯入的驅動程式存放區目錄的路徑。 請勿在 DestinationDirs 包含 dirid 13 的檔案上使用 DelFiles。 檔案在 SourceDiskFiles 區段中的可選子目錄必須與 DestinationDirs 區段中適用於此檔案的項目的子目錄相匹配。 請勿使用 CopyFiles 來重新命名 DestinationDirs 包含 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 |
系統目錄 這相當於 %SystemRoot%\系統。 |
Windows 11 24H2 |
51 |
多任務緩衝處理目錄 (未 用於安裝印表機驅動程式 ≦ 請參閱 Printer Dirids) |
|
52 |
緩衝驅動程式目錄(而非 用於安裝印表機驅動程式) |
|
53 |
使用者配置檔目錄 |
Windows 11 24H2 |
54 |
Ntldr.exe 和 Osloader.exe 所在的目錄 |
Windows 11 24H2 |
55 |
印表處理器目錄 (未 用於安裝印表機驅動程式 ) |
|
-1 |
絕對路徑 |
Windows 11 24H2 |
Dirid 16384 到 32767 的值保留給特殊外殼資料夾。 下表顯示這些資料夾的 dirid 值。
價值 | Shell 特殊資料夾 | 版本已被取代 |
---|---|---|
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 |
所有使用者\文件 |
Windows 11 24H2 |
除了 Setupapi.h中定義的這個數據表值之外,您還可以使用 Shlobj.h中定義的任何 CSIDL_Xxx 值。 若要為此表格中未列出的資料夾定義 dirid 值,請將 16384(0x4000)新增至 CSIDL_Xxx 值。 如需CSIDL_Xxx 值的詳細資訊,請參閱 Windows SDK 檔。