Menentukan Penginstal Bersama KMDF dalam File INF
Catatan
Jika driver Anda hanya menargetkan Windows 10, Anda tidak perlu mendistribusikan ulang WDF atau menyediakan Coinstaller dalam paket driver Anda. Untuk menargetkan Windows 10:
- Di Visual Studio, di halaman properti Pengaturan Proyek, di bawah Pengaturan Driver ->Versi OS Target, pilih Windows 10 atau yang lebih tinggi. Ini setara dengan menambahkan yang berikut ini ke file .vcxproj:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
- Di Bagian Produsen INF, tentukan 10.0 sebagai versi OS target, sebagai berikut:
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0
Jika Anda menyertakan penginstal bersama dalam paket driver Anda, baca topik ini untuk informasi tentang bagian yang harus Anda berikan dalam file INF driver Anda. Informasi ini tidak berlaku jika Anda menyediakan aplikasi penyiapan Anda sendiri yang memanggil .msu redistributables yang disediakan Microsoft.
Bagian File INF untuk Penginstal Bersama
File INF driver Anda harus berisi INF DDInstall. Bagian CoInstallers yang menginstal penginstal bersama. Misalnya bagian ini mungkin bernama MyDevice.ntx86.CoInstallers. Untuk informasi selengkapnya tentang menentukan penginstal bersama dalam file INF, lihat Bagian INF DDInstall.CoInstallers.
Selain itu, file INF driver Anda harus berisi INF DDInstall. Bagian Wdf yang dibaca rekan penginstal setelah diinstal. Misalnya, bagian ini mungkin bernama MyDevice.ntx86.Wdf. Setelah penginstal bersama kerangka kerja diinstal, ia membaca bagian ini saat menginstal driver Anda.
Inf DDInstall. Bagian Wdf berisi direktif berikut:
- KmdfService = DriverService,Wdf-install-section
DriverService mewakili nama yang akan ditetapkan sistem operasi ke layanan mode kernel driver Anda, dan Wdf-install-section mewakili nama bagian INF yang dibaca co-installer untuk mendapatkan informasi tentang driver Anda.
Bagian INF yang diidentifikasi Wdf-install-section harus berisi direktif berikut:
- KmdfLibraryVersion = WdfLibraryVersion
WdfLibraryVersion mewakili nomor versi pustaka, seperti "1.0" atau "1.11".
Misalnya, INF DDInstall berikut. Bagian Wdf menentukan Echo_wdfsect sebagai nama Wdf-install-section .
[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0
Anda dapat menghindari pembuatan beberapa file INF untuk beberapa versi kerangka kerja dengan menggunakan file INX dan alat Stampinf . Untuk informasi selengkapnya tentang file INX, lihat Menggunakan File INX untuk Membuat File INF.
Sampel INF DDInstall. CoInstallers dan DDInstall. Bagian Wdf
Contoh kode berikut menunjukkan cara membuat INF DDInstall. Bagian CoInstallers dan INF DDInstall. Bagian Wdf dari file INF untuk driver PnP. Contoh menunjukkan cara membuat file INF yang disebut MyDevice.inf dan didasarkan pada file Echo.inf driver sampel ECHO. Driver sampel Echo terletak di direktori sampel WDK.
Untuk membuat MyDevice.inf, Anda harus mengubah semua substring ECHO_Device di Echo.inf menjadi nama yang sesuai untuk produk Anda. Contoh kode berikut menggunakan MyDevice.
Anda harus mencoba mencocokkan tata letak bagian yang digunakan sampel Echo.inf . Dengan kata lain, jika memungkinkan, jaga bagian terkait penginstal bersama untuk lebih mudah menemukan kesalahan potong dan tempel.
Sebelum Anda memodifikasi echo.inf, bagian yang menginstal penginstal bersama adalah sebagai berikut:
=============== Top of Echo.inf ====================
....
....
[DestinationDirs]
DefaultDestDir = 12
ECHO_Device_CoInstaller_CopyFiles = 11
....
....
;
;--- ECHO_Device Co-installer installation ------
;
[ECHO_Device.NT.CoInstallers]
AddReg=ECHO_Device_CoInstaller_AddReg
CopyFiles=ECHO_Device_CoInstaller_CopyFiles
[ECHO_Device_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01000.dll,WdfCoInstaller"
[ECHO_Device_CoInstaller_CopyFiles]
WdfCoInstaller01000.dll
[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0
=============== End of Echo.inf ===============
Setelah Anda mengubah semua substring ECHO_Device, file MyDevice.inf Anda akan muncul sebagai berikut:
=============== Top of MyDevice.inf ===============
....
....
[DestinationDirs]
DefaultDestDir = 12
MyDevice_CoInstaller_CopyFiles = 11
....
....
;
;--- MyDevice Co-installer installation ------
;
[MyDevice.NT.CoInstallers]
AddReg=MyDevice_CoInstaller_AddReg
CopyFiles=MyDevice_CoInstaller_CopyFiles
[MyDevice_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01000.dll,WdfCoInstaller"
[MyDevice_CoInstaller_CopyFiles]
WdfCoInstaller01000.dll
[MyDevice.NT.Wdf]
KmdfService = MyDevice, MyDevice_wdfsect
[MyDevice_wdfsect]
KmdfLibraryVersion = 1.0
....
....
=============== End of MyDevice.inf ===============