2010-05-05 52 views
0

我們有一個USB設備和驅動程序(.inf,libusb.dll,libusb.sys),並且可以使用Windows的設備安裝嚮導(通過指向.inf文件)進行安裝。但是,我們需要在不使用嚮導的情況下安裝驅動程序(被動地,因此用戶不需要執行任何操作)。有誰知道這是如何實現的?在沒有管理員提示的情況下安裝USB設備

回答

1

我的同事想出了一個效果很好的答案。看來,除非您的硬件/驅動程序組合是WHQL簽名的,否則添加新硬件嚮導將始終出現在Win XP中。但是,使用以下方法可以讓嚮導中的「搜索」按鈕自動找到您的驅動程序。在Windows 7中,沒有任何提示,並且設備安裝得很好。不過,您需要注意64位機器,因爲它們有更嚴格的簽名實施。

因此,這裏是從the whole document相關摘錄:

使用DIFxAPi合併模塊。 (請閱讀introduction to drivers in Windows, the use of INF files, and DIFxAPP。)DIFxAPI合併模塊包含在WDK的'WDDK // redist \ DIFx \ DIFxApp \ MergeModule \'目錄中。合併模塊可以包含在MSI包中,可以設置爲安裝多個設備驅動程序。以下是創建與DIFXAPP的MSI步驟合併模塊:

  1. 在設置文件夾中創建應用程序文件夾驅動程序包一個單獨的目錄和驅動程序文件添加到文件夾。
  2. 將DIFxApp.msm添加到安裝項目中。
  3. 構建設置
  4. 使用Orca編輯MSI數據庫表並將INF組件添加到DIFxAPP合併模塊表中。

    1. Orca安裝包含在Windows SDK的'C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0 \ Bin'目錄中。 (Windows SDK可以是downloaded from Microsoft
    2. 運行Orca並選擇需要修改的MSI包。
      • 閱讀第5部分的自動化。
    3. 在'文件'表中,找到您想要安裝的驅動程序包的INF文件並複製組件值。
    4. 在MsiDriverPackages表中創建一個新行。將Component值添加到Component字段中。以下flags可以使用(儘管有些是由Windows 7忽略):

      • 0 - 未設置(默認值)
      • 1 - 強制安裝驅動程序,即使當前已安裝的驅動程序是 更好匹配比正在安裝的驅動程序
      • 2 - 禁止消息框告訴用戶在安裝驅動程序 後插入設備。
      • 4 - 禁止在添加/刪除程序中爲驅動程序添加條目。
        卸載主應用程序時,驅動程序將被卸載。
      • 8 - 安裝未簽名的驅動程序包
      • 16 - 在卸載過程中刪除驅動程序二進制文件。
    5. 保存MSI。爲了使過程自動化,可以將MSI數據庫的編輯記錄到變換中,然後可以在後期構建過程中應用變換。
      1. 在Orca打開MSI。
      2. 選擇變換 - >新變換
      3. 完成上述步驟中的步驟3和4。
      4. 選擇Tranform-> Generate transform並保存變換。
      5. 以下行添加到後生成安裝項目 MsiDb.exe -t transform.mst -d $(TARGETDIR)\ DriverInstall.msi的 注:MsiDB.exe自帶的微軟SDK,位於 C:\ Program Files文件\微軟的SDK \的Windows \ V7.0 \ BIN

如果你從MSI安裝一個錯誤(例如,我得到了錯誤代碼2356,其最終是由於無效的Flag值),使用Orca的Validate函數來查看是否有任何錯誤。編輯:修復這些錯誤仍然沒有擺脫錯誤。我記得讀到inf文件應該在他們自己的子目錄中,但是這並沒有解決我的問題。

2

您添加了「安裝程序」標籤,所以我假設你在談論某種安裝包,如Windows安裝程序時,InstallShield的InstallScript等

如果是那樣的話,你應該使用微軟的DIFx framework

的DIFx使得它更容易爲你打造 高品質的驅動程序包, 定製驅動 軟件包的安裝,允許在組合 驅動程序包與 應用軟件的安裝和使用 標準的Windows API和安裝 工具。 DIFx還使 最終用戶更容易診斷設備和 驅動程序問題。最終用戶可以通過 確信,如有必要,驅動程序 可以被卸載或回滾。

我使用了基於Windows Installer安裝和InstallScript安裝的DIFx。非常用戶友好,易於調試和有效。

+0

看起來很有希望 - 我們會調查並報告。 – Pat 2010-05-05 22:18:45

+0

試圖做一個預安裝,但是,當設備插入時,我仍然需要手動安裝。我試圖做一次安裝,並能夠使其正常工作,但只有在安裝運行時插入設備時,情況並非總是如此。 – Pat 2010-05-06 14:49:49

相關問題