Question

Je voudrais déployer un pilote USB à base de .inf avec mon installateur.

Je suppose que le .inf doit être placé dans %SystemRoot%\inf, mais il y a aussi un .cat (certification WHQL je suppose?), Et les fichiers .sys. Que dois-je faire avec ceux?

EDIT: Résolu, grâce aux réponses utiles. J'ai pu P / Invoke la fonction, donc j'avoir une action post-installation qui exécute le code suivant:

namespace DriverPackageInstallAction
{
    static class Program
    {
        [DllImport("DIFXApi.dll", CharSet = CharSet.Unicode)]
        public static extern Int32 DriverPackagePreinstall(string DriverPackageInfPath, Int32 Flags);

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            DirectoryInfo assemblyDir = new DirectoryInfo(Application.ExecutablePath);
            DirectoryInfo installDir = assemblyDir.Parent;

            int result = DriverPackagePreinstall(installDir.FullName + @"\Driver\XYZ.inf", 0);
            if (result != 0)
                MessageBox.Show("Driver installation failed.");
        }
    }
}
Était-ce utile?

La solution

Je commencerais en lisant SetupAPI et DIFx . Le Windows Driver Kit comprend des échantillons de rel="noreferrer"> des deux, y compris une fusion à base DIFx module et une bibliothèque Wix base DIFx. La source de la ligne de commande devcon utilitaire, qui est basé sur SetupAPI , est également inclus dans les échantillons WDK.

Autres conseils

Vous pouvez essayer de demander au shell de l'installer pour vous:

%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 YOUR_FILE.inf

Mais je suis 100% sûr qu'il ya une meilleure façon ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top