libusb/libusb-win32/libusbK/winUSB

== libusb ==
說明:libusb是一個跨平臺的usb驅動框架。libusb原始項目在2010年後基本沒有更新,曾有libusbx項目2012年從libusb分出來,2014年1月26日又合併回libusb了。當時的libusbx-1.0.18和libusb-1.0.18其實完全一樣,相當於libusbx替換了libusb的代碼!後續的版本其實都是基於libusbx的代碼了!

包含兩個主要分支1.x和0.1.x。
1.x和0.1.x並不兼容,可以同時存在,如果要在1.x基礎上兼容0.1.x需要libusb-compat轉換層。所以0.1.x和libusb-compat不能同時裝上!

內核:目前1.x分支的驅動只有用戶態,linux下支持usbfs,windows下支持WinUSB.sys。
也可以支持libusbK和libusb-win32(通過libusbK支持)。

工具:通過Zadig支持生成基於libusb0、libusbK、WinUSB的inf文件。
https://github.com/pbatard/libwdi/wiki/Zadig


== libusb-win32 ==
說明:libusb-win32是從libusb-0.1.x分支衍生的,
主要是針對Windows做優化,所以接口風格和libusb-0.1.x一致。

內核:WDM框架的libusb0.sys驅動。

工具:自帶inf-wizard.exe生成基於libusb0.sys的inf文件。

注意:目前建議是新的項目儘可能使用libusb,而不是這個libusb-win32了。我在這個上面花了很多時間,一直報錯,坑爹了,要注意libusb-win32已經廢棄,目前使用的是libusb+Zadig的組合。


== libusbK ==
說明:libusbK主要是想做一個WinUSB接口風格的開源usb庫,
支持基於KMDF的libusbK.sys和系統自帶的WinUSB.sys。參考libusb-win32做的開發,部分工具是從libusb-win32整合而來的。因爲源代碼裏也包含了libusb0.dll的加載功能和轉換層,所以也可以支持WDM框架的libusb0.sys(libusb-win32)。

內核:基於KMDF框架的libusbK.sys、WDM的libusb0.sys、系統的WinUSB.sys

工具:自帶libusbK-inf-wizard.exe(基於libusb-win32的工具改的)
生成基於libusb0、libusbK、WinUSB的inf文件。


簡單說,就是不要去管libusb-win32和libusbK項目,目前不管是windows還是Linux都是使用libusb項目,主頁是libusb.info。

在Windows上使用libusb時是調用微軟的WinUSB接口,在Linux上是usbfs。用Zadig工具統一安裝驅動,不用理什麼inf-wizard.exe

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章