Bagikan melalui


Menggunakan Dirids

Banyak direktori yang muncul dalam file INF dapat diekspresikan dengan menggunakan pengidentifikasi direktori (dirid), yang merupakan angka yang mengidentifikasi direktori tertentu. Aplikasi dapat menggunakan, tetapi tidak dapat menetapkan ulang direktori yang ditentukan sistem yang terkait dengan dirid yang nilainya berasal dari -1 hingga 32767.

Untuk membuat dirid dengan nilai yang ditentukan pengguna dari 32768 hingga 65534, atau 65536 ke atas, gunakan fungsi SetupSetDirectoryId (dijelaskan dalam dokumentasi Microsoft Windows SDK).

Ketahuilah bahwa dirid dengan nilai 65535 dianggap identik dengan dirid dengan nilai -1, meskipun yang terakhir (dirid -1) lebih disukai.

Jika Anda berniat menggunakan dirid dalam file INF Anda, pertimbangkan dua panduan berikut:

  1. Saat sintaks untuk entri file INF secara eksplisit menentukan nilai yang dibatasi ( bagian INF DestinationDirs, misalnya), ekspres nilai tersebut sebagai angka.

    Contoh berikut menunjukkan sintaks ini:

    [DestinationDirs]
    DefaultDestDir = 11  ;  \system32 directory on Windows 2000 and later versions
    
  2. Ketika sintaks untuk entri file INF menentukan jalur file, Anda dapat menggunakan substitusi string yang disediakan sistem untuk mewakili sebagian atau semua jalur ini. Penggantian ini memiliki formulir berikut:

    %dirid%

    Formulir ini terdiri dari karakter persen (%), diikuti dengan dirid untuk direktori yang ingin Anda tentukan, diikuti dengan persentase karakter lain (%). Karakter garis miring terendah () memisahkan ekspresi ini dari nama file berikut atau direktori tambahan di jalur.

    Contoh berikut menunjukkan sintaks ini:

    [aic78xx_Service_Inst]
    ServiceBinary = %12%\aic78xx.sys
    

    Ketika sepenuhnya diperluas, jalur yang ditampilkan dalam contoh sebelumnya menjadidriver\c:\windows\system32\aic78xx.sys (dengan asumsi bahwa Windows diinstal di direktori c:\windows). Ketahuilah bahwa substitusi string, atau bentuk %dirid%, dapat digunakan di mana saja string diharapkan, dengan pengecualian bagian String INF dari file INF.

    Dua contoh berikut menunjukkan bagaimana penggantian string tidak boleh digunakan.

    [DestinationDirs]
    DefaultDestDir = %11%  ; Error! - number expected
    
    [aic78xx_Service_Inst]
    ServiceBinary = 12\aic78xx.sys  ; Error! - unknown directory name
    

    Dalam contoh pertama, sintaks untuk entri DefaultDestDir mengharuskan nilainya menjadi angka. Namun, ekspresi %11% meluas ke string. Dalam contoh kedua, penulis INF tampaknya dimaksudkan untuk mengatur nilai untuk entri ServiceBinary ke file di direktori yang berisi driver (lihat tabel berikut untuk informasi selengkapnya). Kesalahan terjadi karena Windows mencari file yang ditentukan dalam direktori bernama "12", yang mungkin tidak ada di komputer.

Tabel berikut menunjukkan beberapa dirid yang umum digunakan, dan direktori yang diwakilinya. Nilai yang paling umum ditentukan oleh file INF perangkat dan file INF driver tercantum di bagian atas tabel.

Nilai Direktori Tujuan

01

SourceDrive:\pathname (direktori tempat file INF diinstal)

10

Direktori Windows.

Ini setara dengan %SystemRoot%.

11

Direktori sistem.

Ini setara dengan %SystemRoot%\system32 untuk Windows 2000 dan versi Windows yang lebih baru..

12

Direktori driver.

Ini setara dengandriver%SystemRoot%\system32\ untuk Windows 2000 dan versi Windows yang lebih baru.

13

Direktori Penyimpanan Driver paket driver.

Untuk windows versi Windows 8.1 dan yang lebih baru, menentukan jalur ke direktori Penyimpanan Driver tempat paket driver diimpor.

Jangan gunakan DelFiles pada file yang DestinationDirs-nya menyertakan diri 13.

Subdirektori opsional di bagian SourceDiskFiles untuk file harus cocok dengan subdirektori di bagian DestinationDirs untuk entri yang berlaku untuk file ini.

Jangan gunakan CopyFiles untuk mengganti nama file tempat DestinationDirs menyertakan diri 13.

Untuk informasi selengkapnya tentang menggunakan dirid 13, lihat Menjalankan dari Driver Store.

17

Direktori file INF

18

Direktori bantuan

20

Direktori font

21

Direktori penampil

23

Direktori warna (ICM) (tidak digunakan untuk menginstal pengandar pencetak)

24

Direktori akar disk sistem.

Ini adalah direktori akar diska tempat berkas Windows diinstal. Misalnya, jika dirid 10 adalah "C:\winnt", maka dirid 24 adalah "C:\".

25

Direktori bersama

30

Direktori akar disk boot, juga dikenal sebagai "partisi sistem ARC". (Ini mungkin atau mungkin bukan direktori yang sama dengan direktori yang diwakili oleh dirid 24.)

50

Direktori sistem

Ini setara dengan sistem %SystemRoot%\.

51

Direktori penampung (tidak digunakan untuk menginstal driver printer − lihat Printer Dirids)

52

Direktori pengandar penampung (tidak digunakan untuk menginstal pengandar pencetak)

53

Direktori profil pengguna

54

Direktori tempat Ntldr.exe dan Osloader.exe berada

55

Cetak direktori prosesor (tidak digunakan untuk menginstal pengandar pencetak)

-1

Jalur absolut

Nilai dirid dari 16384 hingga 32767 disediakan untuk folder shell khusus. Tabel berikut ini memperlihatkan nilai dirid untuk folder ini.

Nilai Folder Khusus Shell

16406

Semua Pengguna\Menu Mulai

16407

Semua Pengguna\Menu Mulai\Program

16408

Semua Pengguna\Menu Mulai\Program\Startup

16409

Semua Pengguna\Desktop

16415

Semua Pengguna\Favorit

16419

Semua Pengguna\Data Aplikasi

16422

File Program

16425

%SystemRoot%\SysWOW64

16426

%ProgramFiles(x86)%

16427

File Program\Umum

16428

%ProgramFiles(x86)%\Common

16429

Semua Pengguna\Templat

16430

Semua Pengguna\Dokumen

Selain nilai dalam tabel ini yang ditentukan dalam Setupapi.h, Anda dapat menggunakan salah satu nilai CSIDL_Xxx yang ditentukan dalam Shlobj.h. Untuk menentukan nilai dirid untuk folder yang tidak tercantum dalam tabel ini, tambahkan 16384 (0x4000) ke nilai CSIDL_Xxx . Untuk informasi selengkapnya tentang nilai CSIDL_Xxx , lihat dokumentasi Windows SDK.