共用方式為


使用 Dirids

許多出現在 INF 檔案中的目錄可以使用目錄識別符來表示(dirids),這些目錄是識別特定目錄的數位。 應用程式可以使用,但無法重新指派與 dirids 相關聯的系統定義目錄, 其值是從 -1 到 32767。

若要使用使用者定義的值從 32768 到 65534 或從 65536 開始建立 dirids,請使用 SetupSetDirectoryId 函式(詳情請參見 Microsoft Windows SDK 文件)。

請注意,值為 65535 的 dirid,會被視為與值為 -1 的 dirid 同義,但偏好後者 (dirid -1) 。

如果您想要在 INF 檔案中使用 dirids,請考慮下列兩個指導方針:

  1. 當 INF 檔案項目的語法明確指定 dirid 值時(例如,INF DestinationDirs 區段),則會以數位表示該值。

    下列範例示範此語法:

    [DestinationDirs]
    DefaultDestDir = 11  ;  \system32 directory on Windows 2000 and later versions
    
  2. 當 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 的檔案。

如需使用 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.exeOsloader.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 檔。