Spécification du programme de co-installation KMDF dans un fichier INF

Remarque

Si votre pilote cible uniquement Windows 10, vous n’avez pas besoin de redistribuer WDF ou de fournir un coinstallateur dans votre package de pilotes. Pour cibler Windows 10 :

  1. Dans Visual Studio, dans la page de propriétés Paramètres du projet, sous Paramètres du pilote ->Version du système d’exploitation cible, sélectionnez Windows 10 ou version ultérieure. Cela équivaut à ajouter les éléments suivants au fichier .vcxproj :
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
  1. Dans la section Fabricant INF, spécifiez la version 10.0 du système d’exploitation cible, comme suit :
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0

Si vous incluez un co-programme d’installation dans votre package de pilotes, lisez cette rubrique pour plus d’informations sur les sections que vous devez fournir dans le fichier INF de votre pilote. Ces informations ne s’appliquent pas si vous fournissez votre propre application d’installation qui appelle des redistribuables .msu fournis par Microsoft.

Sections de fichier INF pour le co-programme d’installation

Le fichier INF de votre pilote doit contenir un DDInstall INF. Section CoInstallers qui installe le co-programme d’installation. Par exemple, cette section peut être nommée MyDevice.ntx86.CoInstallers. Pour plus d’informations sur la spécification d’un co-programme d’installation dans un fichier INF, consultez la section DDInstall.CoInstallers INF.

En outre, le fichier INF de votre pilote doit contenir un DDInstall INF. Section Wdf que le co-programme d’installation lit après son installation. Par exemple, cette section peut être nommée MyDevice.ntx86.Wdf. Une fois le co-programme d’installation du framework installé, il lit cette section lors de l’installation de votre pilote.

Inf DDInstall. La section Wdf contient la directive suivante :

  • KmdfService = DriverService,Wdf-install-section

DriverService représente le nom que le système d’exploitation affectera au service en mode noyau de votre pilote, et Wdf-install-section représente le nom d’une section INF que le co-programme d’installation lit pour obtenir des informations sur votre pilote.

La section INF que Wdf-install-section identifie doit contenir la directive suivante :

  • KmdfLibraryVersion = WdfLibraryVersion

WdfLibraryVersion représente un numéro de version de bibliothèque, tel que « 1.0 » ou « 1.11 ».

Par exemple, le DDInstall INF suivant. La section Wdf spécifie Echo_wdfsect comme nom de section Wdf-install-.

[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0

Vous pouvez éviter de créer plusieurs fichiers INF pour plusieurs versions de l’infrastructure à l’aide de fichiers INX et de l’outil Stampinf . Pour plus d’informations sur les fichiers INX, consultez Utilisation de fichiers INX pour créer des fichiers INF.

Exemple d’inf DDInstall. CoInstallers et DDInstall. Wdf Sections

L’exemple de code suivant montre comment créer le DDInstall INF. Section CoInstallers et DDInstall inf. Section Wdf d’un fichier INF pour un pilote PnP. L’exemple montre comment créer un fichier INF appelé MyDevice.inf et est basé sur le fichier Echo.inf de l’exemple de pilote ECHO. L’exemple de pilote Echo se trouve dans le répertoire des exemples de WDK.

Pour créer MyDevice.inf, vous devez modifier toutes les sous-chaînes ECHO_Device dans Echo.inf en un nom approprié pour votre produit. L’exemple de code suivant utilise MyDevice.

Vous devez tenter de faire correspondre la disposition de section utilisée par l’exemple Echo.inf . En d’autres termes, si possible, conservez les sections associées au co-programme d’installation pour repérer plus facilement les erreurs de découpage et de collage.

Avant de modifier echo.inf, les sections qui installent le co-programme d’installation sont les suivantes :

=============== 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 ===============

Une fois que vous avez modifié toutes les sous-chaînes ECHO_Device , votre fichier MyDevice.inf doit apparaître comme suit :

=============== 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 ===============