使用 Dirids
INF 檔案中顯示的許多目錄都可以使用目錄識別碼來表示 (dirids) ,也就是識別特定目錄的數位。 應用程式可以使用,但無法重新指派與值從 -1 到 32767 之 dirids 相關聯的系統定義目錄。
若要使用從 32768 到 65534 或 65534 或 65536 和更新版本中的使用者定義值建立dirids,請使用 Microsoft Windows SDK 檔) 中所述的SetupSetDirectoryId函式 (。
請注意,使用值為 65535 的 dirid 會被視為與具有 -1 值的 dirid 同義,不過較佳的是後者的 dirid -1 (dirid -1) 。
如果您想要在 INF 檔案中使用 dirids ,請考慮下列兩個指導方針:
當 INF 檔案專案的語法明確指定 dirid 值 (INF DestinationDirs 區段時,例如) ,將該值表示為數字。
下列範例示範此語法:
[DestinationDirs] DefaultDestDir = 11 ; \system32 directory on Windows 2000 and later versions
當 INF 檔案專案的語法指定檔案路徑時,您可以使用系統提供的字串替代來代表此路徑的一部分或全部。 此替代格式如下:
%dirid%
此表單包含百分比 (%) 字元,後面接著您要指定之目錄的 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」 的目錄中尋找指定的檔案,該檔案可能不存在於電腦上。
下表顯示數個常用的 dirid,以及它們所代表的目錄。 裝置 INF 檔案和驅動程式 INF 檔案最常指定的值會列在資料表頂端。
值 | 目的地目錄 |
---|---|
01 |
SourceDrive:\pathname (安裝 INF 檔案的目錄) |
10 |
Windows 目錄。 這相當於%SystemRoot%。 |
11 |
系統目錄。 這相當於 Windows 2000 和更新版本的%SystemRoot%\system32。 |
12 |
驅動程式目錄。 這相當於 Windows 2000 和更新版本的 Windows 的%SystemRoot%\system32\驅動程式。 |
13 |
驅動程式套件的 驅動程式存放區 目錄。 針對Windows 8.1和更新版本的 Windows,指定驅動程式套件匯入所在驅動程式存放區目錄的路徑。 請勿在DestinationDirs包含dirid 13 的檔案上使用DelFiles。 檔案之 SourceDiskFiles區段中的選擇性子目錄必須符合適用于此檔案之專案的DestinationDirs區段中的子目錄。 請勿使用 CopyFiles 重新命名 DestinationDirs 包含 dirid 13 的檔案。 如需使用 dirid 13 的詳細資訊,請參閱 從驅動程式存放區執行。 |
17 |
INF 檔案目錄 |
18 |
說明目錄 |
20 |
字型目錄 |
21 |
檢視者目錄 |
23 |
(ICM) (未 用於安裝印表機驅動程式的色彩目錄) |
24 |
系統磁片的根目錄。 這是安裝 Windows 檔案之磁片的根目錄。 例如,如果 dirid 10 是 「C:\winnt」,則 dirid 24 是 「C:\」。 |
25 |
共用目錄 |
30 |
開機磁片的根目錄,也稱為「ARC 系統磁碟分割」。 (此目錄可能與 dirid 24.) 所代表的目錄不同 |
50 |
系統目錄 這相當於%SystemRoot%\system。 |
51 |
多工緩衝處理目錄 (未 用於安裝印表機驅動程式 - 請參閱 印表機 Dirids) |
52 |
多工緩衝處理驅動程式目錄 (未 用於安裝印表機驅動程式) |
53 |
使用者設定檔目錄 |
54 |
Ntldr.exe和Osloader.exe所在的目錄 |
55 |
列印處理器目錄 (未 用於安裝印表機驅動程式) |
-1 |
絕對路徑 |
從 16384 到 32767的 Dirid值會保留給特殊殼層資料夾。 下表顯示這些資料夾的 dirid 值。
值 | Shell 特殊資料夾 |
---|---|
16406 |
所有使用者\開始功能表 |
16407 |
所有使用者\開始功能表\程式 |
16408 |
所有使用者\開始功能表\程式\啟動 |
16409 |
所有使用者\Desktop |
16415 |
所有使用者\我的最愛 |
16419 |
所有使用者\應用程式資料 |
16422 |
程式檔 |
16425 |
%SystemRoot%\SysWOW64 |
16426 |
%ProgramFiles(x86)% |
16427 |
Program Files\Common |
16428 |
%ProgramFiles (x86) %\Common |
16429 |
所有使用者\範本 |
16430 |
所有使用者\檔 |
除了Setupapi.h中所定義的這個資料表中的值之外,您還可以使用Shlobj.h中定義的任何 CSIDL_Xxx值。 若要為此表格中未列出的資料夾定義 dirid 值,請將 16384 (0x4000) 新增至 CSIDL_Xxx 值。 如需 CSIDL_Xxx 值的詳細資訊,請參閱 Windows SDK 檔。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應