Share via


使用 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 ,請考慮下列兩個指導方針:

  1. 當 INF 檔案專案的語法明確指定 dirid 值 (INF DestinationDirs 區段時,例如) ,將該值表示為數字。

    下列範例示範此語法:

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