Bagian Produsen INF

Bagian Produsen mengidentifikasi produsen dari 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 dalam bagian String INF dari file INF.

models-section-name
Menentukan nama yang ditentukan penulis INF 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 dengan berbagai bagian Model INF yang dapat digunakan. Windows memilih bagian Model INF yang paling cocok dengan versi sistem operasi yang dijalankannya.

Untuk deskripsi dekorasi TargetOSVersion , lihat bagian Keterangan 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

File INF apa pun 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 , setiap entri tersebut secara implisit menentukan nama bagian Model yang sesuai di tempat lain di 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 model-section-name 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 yang digunakan bagian Model INF. Jika tidak ada versi yang ditentukan, Windows menggunakan bagian Model tertentu untuk semua versi semua sistem operasi.

Agar Windows XP 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.

Arsitektur
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 Windows 10 tertentu dan 11 rilis 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, diperlukan beberapa entri TargetOSVersion .

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, diperlukan beberapa entri TargetOSVersion .

BuildNumber
Angka yang mewakili nomor build OS minimum dari 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 tersebut 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, jadi upaya untuk menargetkan build sebelumnya ini benar-benar akan mencegah OS tersebut 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 model-section-name 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:

  1. Jika Windows berjalan dalam versi berbasis x86 dari sistem operasi (Windows XP atau versi yang lebih baru) yang menyertakan rangkaian produk Pusat Data, Windows memilih [FooMfg.NTx86.... 0x80]Bagian model .

  2. 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 [FooMfg.NTamd64]Models .

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 sistem operasi versi 7.8 dan yang lebih baru, 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 penyetelan 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 dijalankan pada 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 ke INF untuk alat 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 bersama-sama dalam satu entri seperti yang terlihat dalam contoh ini. Jangan mewakili setiap target sebagai entri terpisah.

Lihat juga

Menggabungkan ekstensi platform dengan versi sistem operasi

Model

String