Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara membuat file INF untuk driver sistem file.
Untuk informasi tentang menginstal dan menghapus pengandar sistem file menggunakan file INF, ikuti panduan yang disediakan dalam artikel berikut untuk driver filter sistem file warisan:
Menggunakan file INF untuk menginstal driver filter sistem file. Anda dapat menggunakan file INF saja, atau bersama dengan file batch atau aplikasi penyiapan mode pengguna.
Menggunakan File INF untuk Menghapus Pengandar Filter Sistem File untuk informasi pencopotan.
Tentang file INF sistem berkas
Windows Setup dan Device Installer Services, yang dikenal secara kolektif sebagai SetupAPI, menyediakan fungsi yang mengontrol pengaturan Windows dan penginstalan driver. File INF mengontrol proses penginstalan. Untuk informasi selengkapnya tentang file INF, lihat Membuat File INF dan Bagian dan Arahan File INF.
File INF dari driver sistem file menyediakan instruksi yang digunakan oleh SetupAPI untuk menginstalnya. File INF menentukan file yang harus ada agar driver Anda berjalan dan direktori sumber dan tujuan untuk file driver. File INF juga berisi informasi konfigurasi driver yang disimpan SetupAPI di registri, seperti jenis mulai driver dan grup urutan beban.
Anda dapat membuat satu file INF untuk menginstal driver Anda pada beberapa versi sistem operasi Windows. Untuk informasi selengkapnya tentang membuat file INF seperti itu, lihat Membuat File INF untuk Beberapa Platform dan Sistem Operasi dan Membuat File INF Internasional.
Dimulai dengan Windows Vista versi 64-bit, semua komponen mode kernel harus ditandatangani agar dapat dimuat dan dijalankan. Persyaratan ini mencakup driver non-PnP (Plug and Play) seperti driver sistem file (sistem file, filter warisan, dan driver minifilter). Untuk informasi umum tentang penandatanganan driver, lihat Penandatanganan Driver.
Untuk versi sistem operasi Windows ini, informasi berikut relevan dengan driver sistem file.
File INF untuk driver non-PnP, termasuk driver sistem file, tidak diperlukan untuk berisi bagian [Produsen] atau [Model].
Alat baris perintah SignTool, yang terletak di direktori \bin\xx.x.xxxxx.x\SelfSign dari direktori penginstalan WDK, dapat digunakan untuk langsung menandatangani dengan embed file eksekusi SYS. Untuk alasan performa, driver boot-start harus berisi tanda tangan yang disematkan.
Mengingat file INF, alat baris perintah Inf2Cat dapat digunakan untuk membuat file katalog (.cat) untuk paket driver.
Dengan hak istimewa Administrator, driver yang tidak ditandatangani masih dapat diinstal pada sistem berbasis x64 yang dimulai dengan Windows Vista. Namun, driver akan gagal memuat (dan dengan demikian menjalankan) karena tidak ditandatangani.
Untuk informasi terperinci tentang proses penandatanganan mengemudi, termasuk proses penandatanganan mengemudi untuk Windows Vista versi 64-bit dan yang lebih baru, lihat dokumen Word Panduan Penandatanganan KodeKernel-Mode .
Semua komponen mode kernel, termasuk alat pengembangan mode kernel kustom, harus ditandatangani. Untuk informasi selengkapnya, lihat Pengantar Test-Signing).
File INF tidak dapat digunakan untuk membaca informasi dari registri atau untuk meluncurkan aplikasi mode pengguna.
Bagian-bagian dalam berkas INF driver sistem berkas
Untuk menyusun file INF driver sistem file Anda sendiri, gunakan informasi berikut sebagai panduan. Anda dapat menggunakan alat InfVerif untuk memeriksa sintaks file INF Anda.
File INF untuk driver sistem file umumnya berisi bagian berikut.
Bagian Versi (diperlukan)
Bagian Versi menentukan informasi versi driver, seperti yang ditunjukkan dalam contoh berikut.
[Version]
Signature = "$WINDOWS NT$"
Provider = %Msft%
DriverVer = 08/28/2000,1.0.0.1
CatalogFile =
Tabel berikut ini memperlihatkan nilai yang harus ditentukan driver filter sistem file di bagian Versi .
Entri | Nilai |
---|---|
Tanda tangan | $WINDOWS NT$ |
Penyedia | Dalam file INF Anda sendiri, Anda harus menentukan penyedia selain Microsoft. |
DriverVer | Lihat direktif INF DriverVer |
CatalogFile | Lihat Menggunakan Inf2Cat untuk Membuat File Katalog |
Bagian DestinationDirs (opsional, namun direkomendasikan)
Bagian DestinationDirs menentukan direktori tempat file driver sistem file akan disalin.
Di bagian ini dan di bagian ServiceInstall , Anda dapat menentukan direktori sistem terkenal dengan menggunakan nilai numerik yang ditentukan sistem. Untuk daftar nilai ini, lihat Bagian DestinationDirs INF. Dalam contoh berikut, nilai "12" mengacu pada direktori Drivers (%windir%\system32\drivers).
[DestinationDirs]
DefaultDestDir = 12
ExampleFileSystem.DriverFiles = 12
Bagian SourceDisksNames (diperlukan)
Bagian SourceDisksNames menentukan media distribusi yang akan digunakan.
Dalam contoh berikut, bagian SourceDisksNames mencantumkan satu media distribusi untuk driver sistem file. Pengidentifikasi unik untuk media adalah 1. Nama media ditentukan oleh token %Disk1%, yang ditentukan di bagian String file INF.
[SourceDisksNames]
1 = %Disk1%
Bagian SourceDisksFiles (diperlukan)
Bagian SourceDisksFiles menentukan lokasi dan nama file yang akan disalin.
Dalam contoh berikut, bagian SourceDisksFiles mencantumkan file yang akan disalin untuk driver sistem file dan menentukan bahwa file dapat ditemukan di media yang pengidentifikasi uniknya adalah 1 (Pengidentifikasi ini ditentukan di bagian SourceDisksNames dari file INF.)
[SourceDisksFiles]
examplefilesystem.sys = 1
Bagian DefaultInstall (diperlukan)
Di bagian DefaultInstall , direktif CopyFiles menyalin file driver driver sistem file ke tujuan yang ditentukan di bagian DestinationDirs .
Direktif CopyFiles tidak boleh merujuk ke file katalog atau file INF itu sendiri; SetupAPI menyalin file-file ini secara otomatis.
Anda dapat membuat satu file INF untuk menginstal driver Anda pada beberapa versi sistem operasi Windows. Jenis file INF ini dibuat dengan membuat beberapa bagian DefaultInstall, DefaultInstall.Services, DefaultUninstall, dan DefaultUninstall.Services untuk setiap versi sistem operasi. Setiap bagian diberi label dengan dekorasi (misalnya, .ntx86, .ntia64, atau .nt) yang menentukan versi sistem operasi yang diterapkannya. Untuk informasi selengkapnya tentang membuat jenis file INF ini, lihat Membuat File INF untuk Beberapa Platform dan Sistem Operasi.
Dalam contoh berikut, direktif CopyFiles menyalin file yang tercantum di bagian ExampleFileSystem.DriverFiles dari file INF.
[DefaultInstall]
OptionDesc = %ServiceDesc%
CopyFiles = ExampleFileSystem.DriverFiles
[ExampleFileSystem.DriverFiles]
examplefilesystem.sys
Bagian DefaultInstall.Services (diperlukan)
Bagian DefaultInstall.Services berisi arahan AddService yang mengontrol bagaimana dan kapan layanan driver tertentu dimuat.
Dalam contoh kode berikut, direktif AddService menambahkan layanan sistem file ke sistem operasi. Token %ServiceName% berisi string nama layanan, yang ditentukan di bagian String dari file INF. ExampleFileSystem.Service adalah nama dari bagian ServiceInstall untuk driver sistem file.
[DefaultInstall.Services]
AddService = %ServiceName%,,ExampleFileSystem.Service
Bagian ServiceInstall (diperlukan)
Bagian ServiceInstall menambahkan subkunci atau nama nilai ke registri serta menetapkan nilai-nilai. Nama bagian ServiceInstall harus muncul di direktif AddService di bagian DefaultInstall.Services.
Contoh berikut menunjukkan bagian ServiceInstall untuk driver sistem file.
[ExampleFileSystem.Service]
DisplayName = %ServiceName%
Description = %ServiceDesc%
ServiceBinary = %12%\examplefilesystem.sys
ServiceType = 2 ; SERVICE_FILE_SYSTEM_DRIVER
StartType = 1 ; SERVICE_SYSTEM_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
LoadOrderGroup = "File System"
AddReg = ExampleFileSystem.AddRegistry
Entri DisplayName menentukan nama untuk layanan. Dalam contoh sebelumnya, string nama layanan ditentukan oleh token %ServiceName%, yang ditentukan di bagian String dari file INF.
Entri Deskripsi menentukan string yang menjelaskan layanan. Dalam contoh sebelumnya, string ini ditentukan oleh token %ServiceDesc%, yang didefinisikan di bagian String dari file INF.
Entri ServiceBinary menentukan jalur ke file yang dapat dieksekusi untuk layanan. Dalam contoh sebelumnya, nilai 12 mengacu pada direktori Drivers (%windir%\system32\drivers).
Entri ServiceType menentukan jenis layanan. Tabel berikut mencantumkan nilai yang mungkin untuk ServiceType dan jenis layanan terkaitnya.
Nilai | Deskripsi |
---|---|
0x00000001 | SERVICE_KERNEL_DRIVER (Layanan driver perangkat) |
0x00000002 | SERVICE_FILE_SYSTEM_DRIVER (Sistem file atau layanan driver filter sistem file) |
0x00000010 | SERVICE_WIN32_OWN_PROCESS (layanan Microsoft Win32 yang berjalan dalam prosesnya sendiri) |
0x00000020 | SERVICE_WIN32_SHARE_PROCESS (layanan Win32 yang berbagi proses) |
Entri ServiceType harus selalu diatur ke SERVICE_FILE_SYSTEM_DRIVER untuk driver sistem file.
Entri StartType menentukan kapan harus memulai layanan. Tabel berikut mencantumkan nilai yang mungkin untuk StartType dan jenis mulai yang sesuai.
Nilai | Deskripsi |
---|---|
0x00000000 | Mulai Boot Layanan (SERVICE_BOOT_START) |
0x00000001 | MULAI_SISTEM_LAYANAN |
0x00000002 | LAYANAN_OTOMATIS_DIMULAI |
0x00000003 | Permintaan Layanan Dimulai |
0x00000004 | LAYANAN_NONAKTIF |
Untuk deskripsi terperinci tentang jenis mulai ini untuk menentukan mana yang sesuai untuk driver sistem file Anda, lihat Apa yang Menentukan Kapan Driver Dimuat.
Dimulai dengan sistem Windows Vista berbasis x64, file gambar biner driver boot-start (driver yang memiliki jenis awal SERVICE_BOOT_START) harus berisi tanda tangan yang disematkan. Persyaratan ini memastikan performa boot sistem yang optimal. Untuk informasi selengkapnya, lihat dokumen Panduan Penandatanganan KodeKernel-Mode Word.
Untuk informasi tentang bagaimana entri StartType dan LoadOrderGroup menentukan kapan driver dimuat, lihat Apa yang Menentukan Kapan Driver Dimuat.
Entri ErrorControl menentukan tindakan yang akan diambil jika layanan gagal dimulai selama startup sistem. Tabel berikut mencantumkan nilai yang mungkin untuk ErrorControl dan nilai kontrol kesalahan terkait.
Nilai | Deskripsi |
---|---|
0x00000000 | SERVICE_ERROR_IGNORE (Catat kesalahan dan lanjutkan startup sistem.) |
0x00000001 | SERVICE_ERROR_NORMAL (Catat kesalahan, tampilkan pesan kepada pengguna, dan lanjutkan startup sistem.) |
0x00000002 | SERVICE_ERROR_SEVERE (Beralih ke kontrol "LastKnownGood" pada registri dan melanjutkan startup sistem.) |
0x00000003 | SERVICE_ERROR_CRITICAL (Jika startup sistem tidak menggunakan set kontrol LastKnownGood registri, beralihlah ke LastKnownGood dan coba lagi. Jika startup masih gagal, jalankan rutinitas pemeriksaan bug. Hanya driver yang diperlukan sistem untuk memulai yang harus menentukan nilai ini dalam file INF mereka.) |
Entri LoadOrderGroup harus selalu diatur ke "Sistem File" untuk driver sistem file. Pengaturan ini berbeda dari apa yang ditentukan untuk driver filter sistem file atau driver minifilter sistem file tempat entri LoadOrderGroup diatur ke salah satu grup urutan pemuatan filter sistem file. Untuk informasi selengkapnya tentang grup urutan muatan, lihat Grup Urutan Muatan untuk Driver Filter Sistem File dan Grup Urutan Muatan dan Ketinggian untuk Driver Minifilter.
Direktif AddReg mengacu pada satu atau beberapa bagian AddRegistry yang ditentukan penulis INF yang berisi informasi apa pun yang akan disimpan dalam registri untuk layanan yang baru diinstal.
Jika file INF juga akan digunakan untuk meningkatkan driver setelah penginstalan awal, entri yang terkandung di bagian AddRegistry harus menentukan bendera 0x00000002 (FLG_ADDREG_NOCLOBBER). Menentukan bendera ini mempertahankan entri registri di HKLM\CurrentControlSet\Services saat file berikutnya diinstal. Contohnya:
[ExampleFileSystem.AddRegistry]
HKR,Parameters,ExampleParameter,0x00010003,1
Bagian DefaultUninstall (opsional)
Bagian DefaultUninstall bersifat opsional tetapi disarankan jika driver Anda dapat dihapus instalasinya. Ini berisi direktif DelFiles dan DelReg untuk menghapus file dan entri registri.
Dalam contoh berikut, direktif DelFiles menghapus file yang tercantum di bagian ExampleFileSystem.DriverFiles dari file INF.
[DefaultUninstall]
DelFiles = ExampleFileSystem.DriverFiles
DelReg = ExampleFileSystem.DelRegistry
Direktif DelReg mengacu pada satu atau beberapa bagian DelRegistry yang ditentukan penulis INF yang berisi informasi apa pun yang akan dihapus dari registri untuk layanan yang sedang dihapus instalasinya.
Bagian DefaultUninstall.Services (opsional)
Bagian DefaultUninstall.Services bersifat opsional tetapi disarankan jika driver Anda dapat dihapus instalasinya. Ini berisi arahan DelService untuk menghapus layanan driver sistem file.
Dalam contoh berikut, direktif DelService menghapus layanan driver sistem file dari sistem operasi.
[DefaultUninstall.Services]
DelService = %ServiceName%,0x200
Arahan DelService harus selalu menentukan bendera 0x200 (SPSVCINST_STOPSERVICE) untuk menghentikan layanan sebelum layanan dihapus.
Ada kelas tertentu dari produk sistem file yang tidak dapat dihapus instalasinya sepenuhnya. Dalam situasi ini, Anda hanya dapat menghapus instalan komponen produk yang dapat dihapus instalasinya dan membiarkan komponen yang tidak dapat dihapus instalannya. Contoh produk tersebut adalah fitur Microsoft Single Instance Store (SIS).
Bagian String (diperlukan)
Bagian String menentukan setiap token %strkey% yang digunakan dalam file INF.
Misalnya, driver sistem file menentukan string berikut dalam file INF-nya.
[Strings]
Msft = "Microsoft Corporation"
ServiceDesc = "Example File System Driver"
ServiceName = "ExampleFileSystem"
ParameterPath = "SYSTEM\CurrentControlSet\Services\ExampleFileSystem\Parameters"
Disk1 = "Example File System Driver CD"
Anda dapat membuat satu file INF internasional dengan membuat bagian-bagian String.LanguageID khusus lokal lainnya dalam file INF. Untuk informasi selengkapnya tentang file INF internasional, lihat Membuat File INF Internasional.