2009-03-24 6 views
19

Tôi muốn triển khai trình điều khiển USB dựa trên .inf với trình cài đặt của mình.Làm cách nào để triển khai trình điều khiển dựa trên .inf?

Tôi đoán .inf cần được đặt trong %SystemRoot%\inf, nhưng cũng có tệp .cat (chứng nhận WHQL tôi đoán?) Và tệp .sys. Tôi phải làm gì với những thứ đó?

EDIT: Đã giải quyết, nhờ các câu trả lời hữu ích. tôi đã có thể P/Gọi chức năng, vì vậy tôi có một cài đặt bài hành động mà chạy đoạn mã sau:

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

Trả lời

8

Tôi sẽ bắt đầu bằng cách đọc khoảng SetupAPIDIFx. Bộ điều khiển Windows bao gồm samples của cả hai, bao gồm mô-đun hợp nhất dựa trên DIFx và thư viện WiX dựa trên DIFx. Nguồn cho tiện ích dòng lệnh devcon, dựa trên SetupAPI, cũng được bao gồm trong các mẫu WDK.

+0

liên kết chính xác: http://msdn.microsoft.com/en-us/ thư viện/ff550855.aspx và http://msdn.microsoft.com/en-us/library/ff544838.aspx –

+0

@ Dercsár: cảm ơn, tôi sẽ cập nhật tất cả 4 liên kết để trỏ đến các địa điểm mới. – bk1e

0

Bạn có thể thử hỏi vỏ để cài đặt nó cho bạn:

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

Nhưng tôi chắc chắn 100% có cách tốt hơn ...

+0

Điều này không hoạt động – Christopher

+0

Vâng, nó hoạt động trên máy tính của tôi khi tôi thử ... Tôi đoán máy tính của bạn chỉ khác nhau ... – scraimer