2010-05-28 78 views
0

我基本理解你C++人,請不要分心因爲我是用Delphi編寫的。USB windows xp最終USB接入問題

我有一份穩定的USB清單方法訪問我所有的USB設備 我得到devicepath,這種結構:連接

TSPDevInfoData = packed record 
    Size: DWORD; 
    ClassGuid: TGUID; 
    DevInst: DWORD; // DEVINST handle 
    Reserved: DWord; 
end; 

讓我的ProductID從我DevicePath 列出成功VenderID所有USB設備在 這使我能夠以穩定的方式訪問每個設備的註冊表數據。

什麼,我缺少的是一個小的方向

  1. 友好的名字能夠通過固件編程連接的USB微芯片裏面寫的? (我想這點來進一步識別設備,或者是這個幫助識別像記憶棒和相機的批量數據傳輸設備)

  2. 我可以使用SPDRP_REMOVAL_POLICY_OVERRIDE一些如何重置這些政策 我還可以使用註冊表詳細信息。

  3. 確定什麼時候有人拔掉一個設備該程序正在使用(在Windows XP標準) 我用一個記錄的Windows事件沒有響應。 我可以讀取註冊表值以確定它是否仍然連接?

  4. 使用CreateFileA(DevicePath)來發送和接收數據 我已經讀了一些時候在某個數據傳輸中拔出了它的疑難清理資源。

  5. 有什麼可以做IoCreateDevice函數爲我和一個人如何使用它的那個任務

這種連接狀態和系統的雙向點鎖定在非常令人擔憂的情況。 最近有人讀過關於此主題的任何內容嗎?

我的目標是 1.列出連接的USB設備

  • 從一切

  • 發送識別在開發微控制器和一個穩定的接收數據和快速的方式來控制

  • 無極限鎖定上拿數據傳輸

  • 注意我沒有使用任何服務包

    我明白了一切USB是ANSI當使用Windows XP不和.Net是所有關於ANSI (什麼是浪費內存)

    我打算在稍後的日期繼續這個項目作爲一個補充。

    MSDN給了我結構和功能,什麼應該鏈接到什麼好,但很少說,他們用什麼。

    我的語言有什麼可用德爾福的定價方式是它需要大幅降價。

    +0

    這聽起來像你基本上問8個問題我這裏n 1。我認爲你應該把它分成多個問題。對於每個問題,向我們展示您嘗試過的內容,並解釋它爲什麼不適合您。我可能可以幫你處理很多這些東西,但現在我的建議是瞭解有關SetupAPI和WinUSB的更多信息:http://msdn.microsoft.com/zh-cn/library/ff550897(v=VS.85 ).aspx http://msdn.microsoft.com/en-us/library/ff540196.aspx – 2011-07-06 02:46:15

    回答

    0

    我發現註冊表DEVICE_INSTALL_STATE有: -

    InstallStateInstalled = 0, InstallStateNeedsReinstall = 1, InstallStateFailedInstall = 2, InstallStateFinishInstall = 3

    我問如何快速更新的響應的問題,並如果他們是更好的辦法做到這一點

    Lex Dean