Pergunta

Eu gostaria de implantar um driver USB .inf com base com o meu instalador.

Eu acho que as necessidades .inf a ser colocados em %SystemRoot%\inf, mas há também uma .cat (certificação WHQL eu acho?), E os arquivos .sys. O que eu faço com isso?

EDIT: Resolvido, graças às respostas úteis. Eu era capaz de P / Invoke a função, então eu tenho uma ação de pós-instalação que corre o seguinte código:

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.");
        }
    }
}
Foi útil?

Solução

Gostaria de começar por ler sobre SetupAPI e DIFx . O Windows Driver Kit inclui href="http://msdn.microsoft.com/en-us/library/ff541313.aspx" amostras de ambos, incluindo uma mesclagem com base em DIFx módulo e uma biblioteca WiX baseado em DIFx. A fonte para a linha de comando devcon utilitário, que se baseia na SetupAPI , também está incluído nas amostras WDK.

Outras dicas

Você poderia perguntar ao shell para instalá-lo para você:

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

Mas estou 100% de certeza que há uma maneira melhor ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top