如何部署基于.inf的驱动程序?

时间:2009-03-24 14:36:58

标签: windows-installer driver

我想在安装程序中部署基于.inf的USB驱动程序。

我想.inf需要放在%SystemRoot%\inf中,但是还有.cat(我猜是WHQL认证?)和.sys文件。我该怎么办?

编辑:已解决,感谢您提供了有用的答案。 我能够P / Invoke这个函数,所以我有一个安装后的操作,它运行以下代码:

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.");
        }
    }
}

2 个答案:

答案 0 :(得分:8)

我首先阅读SetupAPIDIFx。 Windows驱动程序工具包包括samples两者,包括基于DIFx的合并模块和基于DIFx的WiX库。命令行devcon实用程序的源代码(基于SetupAPI)也包含在WDK示例中。

答案 1 :(得分:0)

您可以尝试让shell为您安装它:

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

但我百分百肯定有更好的方法......