Bagian Produsen INF
Bagian Produsen mengidentifikasi produsen satu atau beberapa perangkat yang dapat diinstal dengan menggunakan file INF.
[Manufacturer]
manufacturer-identifier
[manufacturer-identifier]
[manufacturer-identifier]
...
Entri
pengidentifikasi produsen
Secara unik mengidentifikasi produsen dan bagian INF yang berisi informasi yang mengidentifikasi model perangkat produsen. Setiap entri pengidentifikasi produsen harus ada pada baris terpisah dan menggunakan format berikut:
manufacturer-name |
%strkey%=models-section-name |
%strkey%=models-section-name [,TargetOSVersion] [,TargetOSVersion] ... (Windows XP and later versions of Windows)
Entri ini didefinisikan sebagai berikut:
nama produsen
Mengidentifikasi produsen perangkat. INF juga harus berisi bagian Model INF yang sesuai dengan nama yang sama. Panjang maksimum nama produsen, dalam karakter, adalah LINE_LEN. (Entri yang ditentukan dengan cara ini tidak dapat dilokalkan.)
strkey
Menentukan token, unik dalam file INF yang mewakili nama produsen. Setiap token %strkey% tersebut harus didefinisikan di bagian String INF dari file INF.
models-section-name
Menentukan nama yang ditentukan inf-writer untuk bagian Model INF per produsen dalam file INF. Nilai ini harus unik dalam file INF dan harus mengikuti aturan umum untuk menentukan nama bagian. Untuk informasi selengkapnya tentang aturan ini, lihat Aturan Sintaks Umum untuk File INF.
TargetOSVersion
Menentukan satu atau beberapa versi sistem operasi target yang dapat digunakan berbagai bagian Model INF. Windows memilih bagian Model INF yang paling cocok dengan versi sistem operasi yang dijalankannya.
Untuk deskripsi dekorasi TargetOSVersion, lihat bagian Komentar berikut, dan info terkait dalam Contoh 3 di bawah ini.
Penting
Dimulai dengan Windows Server 2003 SP1, file INF harus menghiasi entri nama bagian model di bagian Produsen INF, serta nama bagian Model INF terkait, untuk versi sistem operasi target non-x86. Ekstensi platform ini tidak diperlukan dalam file INF untuk versi sistem operasi target berbasis x86 tetapi disarankan.
Keterangan
Setiap file INF yang menginstal satu atau beberapa perangkat harus memiliki bagian Produsen . File INF yang disediakan IHV/OEM biasanya hanya menentukan satu entri di bagian ini. Jika beberapa entri ditentukan, setiap entri harus berada di baris terpisah dari INF.
Menggunakan entri %strkey%=models-section-name menyederhanakan pelokalan file INF untuk pasar internasional, seperti yang dijelaskan dalam Membuat File INF Internasional dan halaman referensi untuk bagian String INF.
Jika file INF menentukan satu atau beberapa entri dalam format nama produsen, masing-masing entri tersebut secara implisit menentukan nama bagian Model yang sesuai di tempat lain dalam INF.
Anda dapat menganggap setiap bagian Produsen file INF yang disediakan sistem sebagai daftar isi, karena bagian ini menyiapkan penginstalan model perangkat setiap produsen untuk kelas penyiapan perangkat. Setiap entri di bagian Produsen file INF menentukan token %strkey% yang mudah dilokalkan untuk nama produsen dan nama bagian Model unik-ke-inf per produsen.
Entri nama bagian model di bagian Produsen dapat didekorasi untuk menentukan versi sistem operasi target. Bagian Model INF yang berbeda dapat ditentukan untuk versi sistem operasi yang berbeda. Versi yang ditentukan menunjukkan versi sistem operasi tempat bagian Model INF digunakan. Jika tidak ada versi yang ditentukan, Windows menggunakan bagian Model tertentu untuk semua versi semua sistem operasi.
Untuk Windows XP ke Windows 10, versi 1511, format dekorasi TargetOSVersion adalah sebagai berikut:
NT[Architecture][.[OSMajorVersion][.[OSMinorVersion][.[ProductType][.SuiteMask]]]]
Dimulai dengan Windows 10, versi 1607 (Build 14310 dan yang lebih baru), format dekorasi TargetOSVersion adalah sebagai berikut:
NT[Architecture][.[OSMajorVersion][.[OSMinorVersion][.[ProductType][.[SuiteMask][.[BuildNumber]]]]]
Setiap bidang didefinisikan sebagai berikut:
NT
Menentukan sistem operasi target berbasis NT. Windows 2000 dan versi Windows yang lebih baru semuanya berbasis NT.
Sistem
Mengidentifikasi platform perangkat keras. Jika ditentukan, ini harus x86, ia64, amd64, arm, atau arm64.
Sebelum Windows Server 2003 SP1, jika Arsitektur tidak ditentukan, bagian Model INF terkait dapat digunakan dengan platform perangkat keras apa pun.
Dimulai dengan Windows Server 2003 SP1, Arsitektur harus ditentukan dalam nama bagian Model INF untuk versi sistem operasi target non-x86. Arsitektur bersifat opsional dalam nama bagian Model INF untuk versi sistem operasi target berbasis x86 tetapi disarankan.
OSMajorVersion
Angka yang mewakili nomor versi utama sistem operasi. Tabel berikut mendefinisikan versi utama untuk sistem operasi Windows.
Catatan
Untuk membedakan antara rilis Windows 10 dan 11 tertentu dalam file INF, Anda perlu menggunakan BuildNumber (lihat di bawah).
Versi Windows | Versi utama |
---|---|
Windows 11 (semua rilis) | 10 |
Windows Server 2022 | 10 |
Server Windows 2019 | 10 |
Server Windows 2016 | 10 |
Windows 10 (semua rilis) | 10 |
Windows Server 2012 R2 | 6 |
Windows 8.1 | 6 |
Windows Server 2012 | 6 |
Windows 8 | 6 |
Windows Server 2008 R2 | 6 |
Windows 7 | 6 |
Windows Server 2008 | 6 |
Windows Vista | 6 |
Windows Server 2003 R2 | 5 |
Windows Server 2003 | 5 |
Windows XP | 5 |
Windows 2000 | 5 |
OSMinorVersion
Angka yang menunjukkan nomor versi minor sistem operasi. Tabel berikut mendefinisikan versi minor untuk sistem operasi Windows.
Versi Windows | Versi minor |
---|---|
Windows 11 (semua rilis) | 0 |
Windows Server 2022 | 0 |
Server Windows 2019 | 0 |
Server Windows 2016 | 0 |
Windows 10 (semua rilis) | 0 |
Windows Server 2012 R2 | 3 |
Windows 8.1 | 3 |
Windows Server 2012 | 2 |
Windows 8 | 2 |
Windows Server 2008 R2 | 1 |
Windows 7 | 1 |
Windows Server 2008 | 0 |
Windows Vista | 0 |
Windows Server 2003 R2 | 2 |
Windows Server 2003 | 2 |
Windows XP | 1 |
Windows 2000 | 0 |
ProductType
Angka yang mewakili salah satu bendera VER_NT_xxxx yang ditentukan dalam Winnt.h, seperti berikut ini:
0x0000001 (VER_NT_WORKSTATION)
0x0000002 (VER_NT_DOMAIN_CONTROLLER)
0x0000003 (VER_NT_SERVER)
Jika jenis produk ditentukan, file INF hanya digunakan jika sistem operasi cocok dengan jenis produk yang ditentukan. Jika INF mendukung beberapa jenis produk untuk satu versi sistem operasi, beberapa entri TargetOSVersion diperlukan.
SuiteMask
Angka yang mewakili kombinasi satu atau beberapa bendera VER_SUITE_xxxx yang ditentukan dalam Winnt.h. Bendera-bendera ini meliputi:
0x00000001 (VER_SUITE_SMALLBUSINESS)
0x00000002 (VER_SUITE_ENTERPRISE)
0x00000004 (VER_SUITE_BACKOFFICE)
0x00000008 (VER_SUITE_COMMUNICATIONS)
0x00000010 (VER_SUITE_TERMINAL)
0x00000020 (VER_SUITE_SMALLBUSINESS_RESTRICTED)
0x00000040 (VER_SUITE_EMBEDDEDNT)
0x00000080 (VER_SUITE_DATACENTER)
0x00000100 (VER_SUITE_SINGLEUSERTS)
0x00000200 (VER_SUITE_PERSONAL)
0x00000400 (VER_SUITE_SERVERAPPLIANCE)
Jika satu atau beberapa nilai masker suite ditentukan, INF hanya digunakan jika sistem operasi cocok dengan semua rangkaian produk yang ditentukan. Jika INF mendukung beberapa kombinasi rangkaian produk untuk satu versi sistem operasi, beberapa entri TargetOSVersion diperlukan.
BuildNumber
Angka yang mewakili nomor build OS minimum rilis Windows tempat bagian tersebut berlaku, dimulai dengan build 14310 atau yang lebih baru.
Nomor build diasumsikan relatif terhadap beberapa versi utama/minor OS tertentu saja, dan mungkin diatur ulang untuk beberapa versi utama/minor OS di masa mendatang.
Nomor build apa pun yang ditentukan oleh dekorasi TargetOSVersion dievaluasi hanya ketika versi utama/minor OS dari TargetOSVersion cocok dengan versi OS (atau AltPlatformInfo) saat ini dengan tepat. Jika versi OS saat ini lebih besar dari versi OS yang ditentukan oleh dekorasi TargetOSVersion (OSMajorVersion,OSMinorVersion), bagian dianggap berlaku terlepas dari nomor build yang ditentukan. Demikian juga, jika versi OS saat ini kurang dari versi OS yang ditentukan oleh dekorasi TargetOSVersion , bagian tersebut tidak berlaku.
Jika nomor build disediakan, versi OS dan BuildNumber dari dekorasi TargetOSVersion harus lebih besar dari versi OS dan nomor build Windows 10 build 14310 tempat dekorasi ini pertama kali diperkenalkan. Versi sistem operasi sebelumnya tanpa perubahan ini (misalnya, Windows 10 build 10240) tidak akan mengurai dekorasi yang tidak diketahui, sehingga upaya untuk menargetkan build sebelumnya ini benar-benar akan mencegah OS mempertimbangkan dekorasi yang valid sama sekali.
Tabel berikut menentukan nomor build untuk sistem operasi Windows.
Versi Windows | Nomor build |
---|---|
Windows 11 versi 23H2 | 22631 |
Windows 11 versi 22H2 | 22621 |
Windows 11 versi 21H2 | 22000 |
Windows Server 2022 | 20348 |
Windows 10 versi 22H2 | 19045 |
Windows 10 versi 21H2 | 19044 |
Windows 10 versi 21H1 | 19043 |
Windows 10 versi 20H2 | 19042 |
Windows 10 versi 2004 | 19041 |
Windows 10 versi 1909 | 18363 |
Windows 10 versi 1903 | 18362 |
Server Windows 2019 | 17763 |
Windows 10 versi 1809 | 17763 |
Windows 10 versi 1803 | 17134 |
Windows 10 versi 1709 | 16299 |
Windows 10 versi 1703 | 15063 |
Server Windows 2016 | 14393 |
Windows 10 versi 1607 | 14393 |
Untuk informasi selengkapnya tentang dekorasi TargetOSVersion , lihat Menggabungkan Ekstensi Platform dengan Versi Sistem Operasi.
Penting
Kami sangat menyarankan Agar Anda selalu menghias entri nama bagian model di bagian Produsen dan Model dengan ekstensi platform untuk sistem operasi target Windows XP atau versi Windows yang lebih baru. Untuk platform perangkat keras berbasis x86, Anda harus menghindari penggunaan . Ekstensi platform NT dan gunakan . NTx86 sebagai gantinya.
Jika INF Anda berisi entri bagian Produsen dengan dekorasi, itu juga harus menyertakan bagian Model INF dengan nama yang cocok dengan dekorasi sistem operasi. Misalnya, jika INF berisi bagian Produsen berikut:
%FooCorp%=FooMfg, NTx86.... 0x80, NTamd64
Kemudian INF juga harus berisi bagian Model INF dengan nama berikut:
[FooMfg.NTx86.... 0x80]
Nama ini berlaku untuk rangkaian Pusat Data Windows XP dan versi Windows yang lebih baru pada platform perangkat keras berbasis x86.
[FooMfg.NTamd64]
Nama ini berlaku untuk semua jenis produk dan suite Windows XP dan versi Windows yang lebih baru pada platform perangkat keras berbasis x64.
Selama penginstalan, Windows memilih bagian Model INF dengan cara berikut:
Jika Windows berjalan dalam versi sistem operasi berbasis x86 (Windows XP atau versi yang lebih baru) yang mencakup rangkaian produk Pusat Data, Windows memilih [FooMfg.NTx86.... 0x80] Bagian model.
Jika Windows berjalan dalam versi berbasis x64 dari sistem operasi (Windows XP atau versi yang lebih baru) untuk rangkaian produk apa pun, Windows memilih bagian Model [FooMfg.NTamd64].
Jika INF dimaksudkan untuk digunakan dengan versi sistem operasi yang lebih lama dari Windows XP, INF juga harus berisi bagian Model yang tidak terdekorasi bernama [FooMfg].
Jika INF mendukung beberapa produsen, aturan ini harus diikuti untuk setiap produsen.
Berikut ini adalah contoh tambahan dekorasi TargetOSVersion :
%FooCorp% = FooMfg, NTx86
Dalam contoh ini, nama bagian Model INF yang dihasilkan adalah [FooMfg.NTx86], dan berlaku untuk versi x86 sistem operasi (Windows XP atau yang lebih baru).
%FooCorp% = FooMfg, NT.7.8
Dalam contoh ini, untuk versi 7.8 dan yang lebih baru dari sistem operasi, nama bagian Model INF yang dihasilkan adalah [FooMfg.NT.7.8]. Untuk versi sistem operasi yang lebih lama seperti Windows XP, [FooMfg.NT] digunakan.
Pilihan penyiapan bagian Model INF mana yang akan digunakan didasarkan pada aturan berikut:
Jika INF berisi bagian Model INF untuk beberapa nomor versi sistem operasi utama atau minor, Windows menggunakan bagian dengan nomor versi tertinggi yang tidak lebih tinggi dari versi sistem operasi tempat penginstalan berlangsung.
Jika bagian Model INF yang cocok dengan versi sistem operasi juga menyertakan jenis produk dan/atau dekorasi rangkaian produk, Windows memilih bagian yang paling cocok dengan sistem operasi yang sedang berjalan.
Misalkan, misalnya, Windows menjalankan Windows XP (versi 5.1), tanpa rangkaian produk Pusat Data, dan menemukan entri berikut di bagian Produsen :
%FooCorp%=FooMfg, NT, NT.5, NT.5.5, NT.... 0x80
Dalam hal ini, Windows mencari bagian Model INF bernama [FooMfg.NT.5]. Windows juga menggunakan bagian [FooMfg.NT.5] jika dijalankan pada versi Pusat Data Windows XP, karena nomor versi tertentu lebih diutamakan daripada jenis produk dan masker rangkaian.
Jika Anda ingin INF secara eksplisit mengecualikan versi sistem operasi, jenis produk, atau rangkaian tertentu, buat bagian Model INF kosong. Misalnya, bagian kosong bernama [FooMfg.NTx86.6.0] melarang penginstalan pada sistem operasi berbasis x86 versi 6.0 dan yang lebih tinggi.
Contoh
Contoh ini menunjukkan bagian Produsen yang khas untuk INF untuk satu IHV.
[Manufacturer]
%Mfg%=Contoso,NTamd64 ; Models section == Contoso
[Contoso.NTamd64]
; ...
[Strings]
Mfg = "Contoso, Ltd."
Contoh berikutnya menunjukkan bagian dari bagian Produsen yang khas untuk INF untuk penginstal khusus kelas perangkat:
[Manufacturer]
%CONTOSO%=Contoso_Section,NTamd64
; several entries omitted here for brevity
%FABRIKAM%=Fabrikam_Section,NTamd64
%ADATUM%=Adatum_Section,NTamd64
Contoh berikut menunjukkan bagian Produsen yang khusus untuk platform x86, Windows XP, dan yang lebih baru:
[Manufacturer]
%foo%=foosec,NTx86.5.1
[foosec.NTx86.5.1]
Contoh berikut menunjukkan bagian Produsen yang khusus untuk platform x64, Windows 10 build 14393 dan yang lebih baru:
[Manufacturer]
%foo%=foosec,NTamd64.10.0...14393
[foosec.NTamd64.10.0...14393]
Dua contoh berikut menunjukkan file INF kerangka dengan berbagai bagian Model INF khusus OS:
Contoh 1:
[Manufacturer]
%MyName% = MyName,NTx86.5.1
.
[MyName]
%MyDev% = InstallA,hwid
.
[MyName.NTx86.5.1]
%MyDev% = InstallB,hwid
.
[InstallA] ; Windows 2000
.
.
[InstallB] ; Windows XP and later, x86 only
.
Contoh 2:
[Manufacturer]
%MyName% = MyName,NTx86.6.0,NTx86.5.1,
.
[MyName.NTx86.6.0] ; Empty section, so this INF does not support
. ; NT 6.0 and later.
.
[MyName.NTx86.5.1] ; Used for NT 5.1 and later
. ; (but not NT 6.0 and later due to the NTx86.6.0 entry)
%MyDev% = InstallB,hwid
.
[MyName] ; Empty section, so this INF does not support
. ; Win2000
.
Contoh 3:
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.6.1, NTamd64.10.0, NTamd64.10.0...14310
.
[MyMfg.NTamd64.6.1] ; Used for Windows 7 and later
. ; (but not for Windows 10 and later due to the NT.10.0 entry)
.
[MyMfg.NTamd64.10.0] ; Used for Windows 10
. ; (but not for Windows 10 build 14393 and later due to the NT.10.0...14393 entry)
.
[MyMfg.NTamd64.10.0...14393] ; Used for Windows 10 build 14393 and later
.
.
Catatan
Saat menentukan beberapa TargetOSVersions, string mereka bersama-sama dalam satu entri seperti yang terlihat dalam contoh ini. Jangan mewakili setiap target sebagai entri terpisah.