2009-03-24 17 views
19

Me gustaría implementar un controlador USB basado en .inf con mi instalador.¿Cómo implemento un controlador basado en .inf?

Supongo que el .inf debe colocarse en %SystemRoot%\inf, pero también hay un .cat (¿certificación WHQL? Supongo?) Y archivos .sys. ¿Qué hago con esos?

EDIT: Resuelto, gracias a las respuestas útiles. pude P/invocar la función, así que tengo una acción posterior a la instalación que se ejecuta el siguiente 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."); 
     } 
    } 
} 

Respuesta

8

Comenzaré leyendo SetupAPI y DIFx. El Kit de controladores de Windows incluye samples de ambos, incluido un módulo de fusión basado en DIFx y una biblioteca WiX basada en DIFx. La fuente de la línea de comandos devcon utilidad, que se basa en SetupAPI, también se incluye en las muestras de WDK.

+0

enlaces correctos: http://msdn.microsoft.com/en-us/ library/ff550855.aspx y http://msdn.microsoft.com/en-us/library/ff544838.aspx –

+0

@ Dercsár: gracias, actualizaré los 4 enlaces para que apunten a las nuevas ubicaciones. – bk1e

0

Usted podría intentar pedir la cáscara para instalarlo para usted:

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

Pero estoy 100% seguro de que hay una mejor manera ...

+0

Esto no funciona – Christopher

+0

Bueno, funcionó en mi computadora cuando lo probé ... Supongo que su computadora es simplemente diferente ... – scraimer

Cuestiones relacionadas