Aturan Sintaks Umum untuk File INF

File INF adalah file teks yang diatur ke dalam bagian bernama. Beberapa bagian memiliki nama yang ditentukan sistem dan beberapa bagian memiliki nama yang ditentukan oleh penulis file INF.

Setiap bagian berisi entri khusus bagian yang ditafsirkan oleh komponen penginstalan perangkat. Beberapa entri dimulai dengan kata kunci yang telah ditentukan sebelumnya. Entri ini disebut direktif.

Beberapa entri file INF pada dasarnya adalah penunjuk dari satu bagian ke bagian lain, untuk tujuan tertentu. Misalnya, arahan ADDReg INF mengidentifikasi bagian yang berisi entri yang menginstruksikan Windows untuk mengubah registri. Entri ini terkadang menyertakan argumen tambahan (diperlukan atau opsional) untuk ditafsirkan Windows selama penginstalan.

Entri file INF lainnya tidak menunjuk ke bagian lain, tetapi menyediakan informasi yang digunakan Windows selama penginstalan, seperti nama file, nilai registri, informasi konfigurasi perangkat keras, bendera, dan sebagainya. Misalnya, arahan DRIVERVer INF menyediakan informasi versi driver.

Ketika Windows memulai penginstalan, pertama-tama mencari bagian Versi INF untuk memverifikasi validitas file INF. Kemudian memulai penginstalan dengan menemukan bagian Produsen INF. Bagian ini berisi direktif ke bagian Model INF, yang pada gilirannya menyediakan arahan yang mengarah ke berbagai bagian INF DDInstall, berdasarkan ID perangkat keras perangkat yang diinstal.

Aturan sintaks berikut mengatur konten file INF yang diperlukan dan opsional, format nama bagian dengan menggunakan token string, dan format baris, kelanjutan, dan komentar.

Sensitivitas Huruf Besar/Kecil

  • Nama, entri, dan direktif bagian tidak peka huruf besar/kecil. Misalnya, versi, VERSI, dan Versi adalah spesifikasi nama bagian yang sama validnya dalam file INF.

Isi yang Diperlukan dan Opsional

  • Kumpulan bagian, entri, dan arahan yang diperlukan dan opsional dalam file INF tertentu tergantung pada jenis perangkat/driver atau komponen yang akan diinstal.

  • Kumpulan bagian, entri khusus bagian, dan arahan yang diperlukan untuk menginstal perangkat tertentu dan drivernya juga agak tergantung pada alat penginstal kelas yang sesuai, jika ada. Untuk informasi selengkapnya tentang cara penginstal kelas yang disediakan sistem menangani file INF khusus jenis perangkat, lihat dokumentasi spesifik jenis perangkat di WDK.

  • Dalam definisi sintaksis, entri opsional dibatasi oleh tanda kurung siku yang tidak dibaut ([,]). Di sisi lain, tanda kurung tebal ([, ]) adalah elemen yang diperlukan dari entri tempat mereka dikandung. Dalam contoh berikut, tanda kurung di sekitar Versi diperlukan, sementara tanda kurung di sekitar=nama kelas menunjukkan entri ini bersifat opsional.

    [Version]
    
    Signature="signature-name"
    [Class=class-name]
    ...
    

Nama Bagian

  • Bagian dapat ditentukan dalam urutan apa pun. Sebagian besar bagian daftar file INF dalam urutan tertentu, menurut konvensi, tetapi Windows menemukan bagian berdasarkan nama, bukan berdasarkan lokasi dalam file INF.

  • Setiap bagian dalam file INF dimulai dengan nama bagian yang diapit dalam tanda kurung siku ([ ]). Nama bagian dapat ditentukan sistem atau inf-writer-defined.

    Misalnya, [Produsen] menentukan awal bagian Produsen bernama sistem, sementara [Std.Mfg] mewakili nama bagian Model yang ditentukan inf-writer tertentu.

    Nama bagian memiliki panjang maksimum 255 karakter pada Windows 2000 dan versi Windows yang lebih baru.

    Setiap bagian berakhir di awal [nama-bagian] baru atau di tanda akhir file.

  • Jika lebih dari satu bagian dalam file INF memiliki nama yang sama, sistem menggabungkan entri dan arahannya ke dalam satu bagian.

  • Kecuali diapit dalam karakter tanda kutip ganda ("), nama bagian yang ditentukan penulis INF harus berupa string karakter yang tidak dikutip unik-ke-INF dari karakter yang terlihat secara eksplisit, tidak termasuk karakter tertentu dengan arti khusus INF. Secara khusus, nama bagian yang tidak dikutip yang direferensikan oleh entri atau direktif bagian tidak boleh memiliki spasi di depan atau di belakang, karakter linefeed, karakter pengembalian, atau karakter kontrol yang tidak terlihat, dan tidak boleh berisi tab. Selain itu, tidak boleh berisi salah satu karakter tanda kurung siku ([ ]), karakter satu persen (%), titik koma (;), atau karakter tanda kutip ganda internal ("), dan tidak dapat memiliki garis miring terbalik (\) sebagai karakter terakhirnya.

    Misalnya, Std.Mfg dan Std_Mfg adalah nama bagian yang unik dan valid ketika direferensikan oleh entri atau arahan file INF, tetapi Std; Mfg (dengan titik koma internalnya) tidak valid kecuali diapit oleh tanda kutip ganda (").

    Menentukan nama bagian yang ditentukan penulis INF sebagai "string yang dikutip" menggantikan sebagian besar batasan yang sebelumnya dijelaskan pada karakter dalam nama bagian yang direferensikan. Nama bagian yang dibatasi tersebut dapat berisi hampir semua karakter yang terlihat secara eksplisit atau implisit kecuali tanda kurung tutup (]) selama bagian yang sesuai dalam file INF sama persis dengan "string yang dikutip" ini.

    Misalnya, ";; Std Mfg " adalah referensi nama bagian yang valid jika deklarasi bagian yang sesuai dalam file INF sama persis dengan nama di dalam tanda kutip ganda sehubungan dengan spasi dan karakter titik komanya sebagai [;; Std Mfg ].

Menggunakan Token String

  • Banyak nilai dalam file INF, termasuk nama bagian yang ditentukan inf-writer, dapat dinyatakan sebagai token kunci string dari strkey% formulir%. Di bagian String INF dari file INF, setiap kunci string harus dikaitkan dengan nilai string yang terdiri dari urutan karakter yang terlihat secara eksplisit. Jika perlu, kode penyiapan mengonversi nilai string, menjadi Unicode.

    Untuk informasi selengkapnya tentang cara menentukan % token strkey% dan nilainya masing-masing, lihat deskripsi bagian String INF.

Format Baris, Kelanjutan, dan Komentar

  • Setiap entri dan arahan di bagian diakhir dengan karakter return atau linefeed. Oleh karena itu, editor teks yang digunakan untuk membuat file INF tidak boleh menyisipkan karakter return atau linefeed setelah beberapa karakter yang ditentukan editor secara arbitrer.

  • Karakter garis miring terbalik (\) dapat digunakan sebagai kontinuator garis eksplisit dalam entri atau arahan. Namun, karakter garis miring terbelakang juga digunakan dalam spesifikasi jalur. Untuk memastikan bahwa karakter garis miring terbalik yang muncul dalam spesifikasi jalur tidak disalahartikan sebagai kontinuator garis, gunakan strategi berikut:

    • Untuk direktif yang mencakup dua baris, salah satunya adalah entri yang berisi garis miring terbalik, gunakan tanda kutip untuk memisahkan entri yang berisi garis miring terbalik.

      CopyFiles = "SomeDirectory\"\
      ,SomeFile
      
    • Hindari menggunakan karakter garis miring terbelakang dengan cara yang ditunjukkan dalam contoh berikut. Windows mengabaikan garis miring terbalik pertama dan menginterpretasikan garis miring terbalik kedua sebagai kontinuator garis.

      CopyFiles = SomeDirectory\\
      ,SomeFile
      
    • Sintaks berikut valid dan setara dengan CopyFiles = "SomeDirectory\",SomeFile ; comment.

      CopyFiles = "SomeDirectory\"\ ; comment 
      ,SomeFile
      

      Karena teks setelah titik koma diabaikan, CopyFiles = "SomeDirectory\" ; comment ,SomeFile tidak berfungsi.

  • Komentar dimulai dengan karakter titik koma (;). Saat mengurai dan menginterpretasikan file INF, sistem mengasumsikan bahwa berikut ini tidak memiliki relevansi dengan proses penginstalan:

    • Karakter apa pun yang mengikuti titik koma pada baris yang sama, kecuali titik koma muncul dalam "string yang dikutip" atau % token strkey%
    • Baris kosong apa pun yang tidak berisi apa pun kecuali karakter linefeed atau return
  • Koma memisahkan nilai yang disediakan dalam entri dan arahan bagian.

    Entri atau arahan file INF dapat menghilangkan nilai opsional di tengah daftar nilai, tetapi koma harus tetap ada. File INF dapat menghilangkan koma di belakang.

    Misalnya, pertimbangkan sintaks untuk entri bagian SourceDisksFiles :

    Filename=diskid[,[subdir][,size]]

    Entri yang menghilangkan nilai subdir tetapi menyediakan nilai ukuran harus menentukan pemisah koma untuk kedua nilai, seperti yang ditunjukkan dalam contoh berikut:

    Filename=diskid,,size

    Entri dalam file INF yang menghilangkan dua nilai opsional dapat memiliki format ini:

    Filename=diskid

  • Untuk menyertakan karakter persen (%) dalam nilai yang disediakan dalam entri dan arahan bagian, lepaskan karakter persen dengan karakter persentase lain.

    Misalnya, pertimbangkan pernyataan ini di bagian [add-registry-section] :

    HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll"

    Nilai registri akan diatur dengan nilai berikut:

    %SystemRoot%\System32\IoLogMsg.dll

  • Untuk menyertakan karakter tanda kutip ganda (") dalam nilai yang disediakan dalam entri dan arahan bagian, lepaskan karakter kutipan ganda dengan karakter kutipan ganda lainnya. Perhatikan bahwa string harus berada dalam "string yang dikutip".

    Misalnya, pertimbangkan pernyataan ini di bagian [add-registry-section] :

    HKR,,Contoh,"Menampilkan string ""contoh""

    Nilai registri akan diatur dengan nilai berikut:

    Menampilkan string "contoh"

Batas Ukuran INF

  • Panjang maksimum, dalam karakter, dari bidang file INF, sebelum penggantian string dan termasuk karakter NULL yang mengakhiri, adalah 4096.

  • Setelah penggantian string, panjang maksimum, dalam karakter, dari string file INF adalah 4096, yang mencakup karakter NULL yang mengakhiri.

  • Namun, perlu diketahui bahwa Plug and Play (PnP) dapat memberlakukan batas yang lebih ketat untuk bidang file INF tertentu yang dikenali atau digunakannya, seperti deskripsi perangkat, penyedia driver, dan produsen perangkat.