2009-03-24 5 views
19

Ich möchte einen .inf-basierten USB-Treiber mit meinem Installer bereitstellen.Wie stelle ich einen INF-basierten Treiber bereit?

Ich denke, die .inf muss in %SystemRoot%\inf platziert werden, aber es gibt auch eine .cat (WHQL-Zertifizierung, die ich denke?), Und. Sys-Dateien. Was mache ich mit denen?

EDIT: Gelöst, dank der hilfreichen Antworten. konnte ich P/Invoke die Funktion, so habe ich einen Post-Install-Aktion, die den folgenden Code ausführt:

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

Antwort

8

Ich würde mit dem Lesen über SetupAPI und DIFx beginnen. Das Windows-Treiberkit enthält samples von beiden, einschließlich eines DIFx-basierten Mergemoduls und einer DIFx-basierten WiX-Bibliothek. Die Quelle für das Befehlszeilenprogramm devcon, das auf SetupAPI basiert, ist ebenfalls in den WDK-Beispielen enthalten.

+0

richtige Links: http://msdn.microsoft.com/en-us/ Bibliothek/ff550855.aspx und http://msdn.microsoft.com/en-us/library/ff544838.aspx –

+0

@ Dercsár: Danke, ich werde alle 4 Links aktualisieren, um auf die neuen Standorte zu zeigen. – bk1e

0

Sie versuchen, die Shell fragen könnte es für Sie zu installieren:

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

Aber ich bin 100% sicher, es gibt einen besseren Weg ...

+0

Das funktioniert nicht – Christopher

+0

Nun, es funktionierte auf meinem Computer, als ich es ausprobiert ... Ich denke, Ihr Computer ist nur anders ... – scraimer

Verwandte Themen