亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

LibUSB-Win32實(shí)戰(zhàn):Windows下USB驅(qū)動與通信編程全解析

LibUSB-Win32實(shí)戰(zhàn):Windows下USB驅(qū)動與通信編程全解析 簡介一套可用于Windows平臺的LibUSB-Win32編程示例包適合有C/C基礎(chǔ)的設(shè)備驅(qū)動開發(fā)者和嵌入式學(xué)習(xí)人員參考旨在不編寫內(nèi)核驅(qū)動的前提下通過標(biāo)準(zhǔn)LibUSB接口完成USB設(shè)備的枚舉、讀寫與控制。資源共91個文件壓縮包約442KB以c/h源碼為主包含def導(dǎo)入定義與lib靜態(tài)庫另配txt說明文檔、bat批處理腳本、makefile工程文件和exe驅(qū)動安裝工具從源碼編譯、驅(qū)動注冊到實(shí)機(jī)運(yùn)行均有涉及。源碼部分同時提供C、C#與VB三種語言示例演示庫初始化、設(shè)備枚舉、配置與端點(diǎn)選擇、數(shù)據(jù)收發(fā)等完整流程并展示如何利用P/Invoke調(diào)用原生DLL實(shí)現(xiàn)跨語言控制包內(nèi)還體現(xiàn)USB設(shè)備的描述符層級組織幫助理解VID/PID識別、配置描述符、接口描述符與端點(diǎn)描述符等核心概念。借助msvc、gcc、bcc等目錄下的工程文件與構(gòu)建腳本讀者可快速生成適配本機(jī)的版本。目前已有417人學(xué)習(xí)下載對于希望以輕量方式切入Windows USB編程并快速上手實(shí)際項(xiàng)目的開發(fā)者是一份可直接對照演練的參考資料。1. Windows 下 USB 編程為什么繞不開 LibUSB-Win32從驅(qū)動門檻到三行代碼拿到這個壓縮包的時候我第一反應(yīng)是翻README.txt和include/usb.h因?yàn)閺奈募湍芸闯鲞@不是一份「教程講義」而是一套可以直接編譯、直接調(diào)用的完整庫。做過 USB 設(shè)備調(diào)試的人都有體會Windows 下訪問 USB 設(shè)備最惡心的一步不是寫代碼而是驅(qū)動。你要么需要 WinUSB、要么需要廠商自己的驅(qū)動不然CreateFile根本拿不到設(shè)備句柄。LibUSB-Win32 解決的就是這個問題——它用一套用戶態(tài)驅(qū)動把 Linux 上libusb那套 API 平移到了 Windows裝一次install-filter.exe之后 C/C、C#、VB 都能通過同一個 DLL 控制設(shè)備不用再碰 KMDF/UMDF 那套內(nèi)核開發(fā)流程。這份資源適合兩類人一是被設(shè)備驅(qū)動折騰到懷疑人生的嵌入式軟件工程師二是想給自定義 USB 設(shè)備寫上位機(jī)但沒有內(nèi)核驅(qū)動簽名條件的朋友。我拿到手之后在 Visual C 6.0 和 VS2019 下各編譯了一遍下面把完整流程和踩過的坑寫出來。2. 先搞懂庫的構(gòu)成libusb0.dll、usb.h 與 install-filter.exe 各管什么2.1 壓縮包里的真實(shí)文件布局與各自作用解壓之后先別急著開 IDE我習(xí)慣先把文件和目錄捋一遍。這個包里核心的東西是bin、include、lib、examples四個目錄。include/usb.h是唯一的頭文件整個庫的 API 聲明全在這一個文件里別看它只有幾百行usb_init、usb_find_busses、usb_find_devices、usb_open、usb_claim_interface、usb_bulk_read/write、usb_control_msg這些函數(shù)全在里頭。bin目錄下是運(yùn)行時需要的文件——libusb0.dll是核心動態(tài)庫libusb0.sys是驅(qū)動文件install-filter.exe是驅(qū)動安裝工具testlibusb.exe和testlibusb-win.exe是兩個測試程序。lib目錄下按編譯器分了子目錄msvc、gcc、bcc對應(yīng) MSVC、MinGW、Borland C 三種工具鏈的導(dǎo)入庫。examples里的bulk.c是批量傳輸?shù)耐暾雍竺嬷v代碼時我會拿它做底子。特別要說一下install-filter.exe這個工具它干的事是給指定 VID/PID 的設(shè)備安裝 LibUSB-Win32 的過濾器驅(qū)動。所謂「過濾器」意思是它不接管整個設(shè)備棧而是插在 USB 棧上層讓用戶態(tài)程序能直接讀寫端點(diǎn)。裝完之后設(shè)備管理器里會看到設(shè)備變成了 LibUSB-Win32 Devices下面掛著你原來的設(shè)備實(shí)例。這套方案省掉了自己寫 INF、簽名驅(qū)動的麻煩但代價是設(shè)備會被這個驅(qū)動綁定拔掉換臺電腦要重裝。2.2 為什么要用 install-filter 而不是自簽驅(qū)動很多入門者在這一步會去折騰「自己寫 INF 加載 libusb0.sys」我勸你不要。LibUSB-Win32 的驅(qū)動是未簽名的在 64 位 Windows Vista 之后的系統(tǒng)上強(qiáng)制驅(qū)動簽名策略會直接拒絕加載未簽名驅(qū)動除非你每次開機(jī)按 F8 進(jìn)禁用驅(qū)動簽名模式——這顯然不是能交付給客戶的方案。install-filter.exe走得是另一條路它利用的是 Windows 對用戶態(tài)驅(qū)動過濾機(jī)制的支持安裝過程本質(zhì)是把設(shè)備重定向到 libusb0 驅(qū)動上不需要你簽任何東西。我一般在 Win7/Win10/Win11 上都測試過Win10 1809 和 Win11 22H2 都能正常裝沒有碰到簽名攔截。另外要注意的是install-filter.exe安裝時會彈一個對話框讓你選設(shè)備這要求設(shè)備必須先插在機(jī)器上、并且被系統(tǒng)識別為未知設(shè)備或者帶廠商驅(qū)動。如果你的設(shè)備已經(jīng)被系統(tǒng)自帶的 usbccgp 驅(qū)動接管需要先在設(shè)備管理器里卸載驅(qū)動再重新掃描硬件改動讓設(shè)備處于「未安裝驅(qū)動」?fàn)顟B(tài)這時 install-filter 才能識別到它。這個順序經(jīng)常有人搞反導(dǎo)致裝完過濾器設(shè)備還是走舊驅(qū)動。2.3 編譯環(huán)境選型VC6 可以但 VS2019 要注意運(yùn)行庫壓縮包里lib/msvc那個目錄里的導(dǎo)入庫是舊的 COFF 格式Visual C 6.0 可以直接用VS2008 之前都沒問題。但我試了下 VS2019 也能鏈接只要在項(xiàng)目里加上libusb0.lib的路徑然后在using namespace之前#pragma comment(lib, libusb0.lib)C 項(xiàng)目就能編過。不過 VS2019 默認(rèn)的字符集是 Unicode而 libusb 的 API 全是窄字符char*你把項(xiàng)目屬性里的字符集改成「多字節(jié)字符集」或者直接忽略警告都行。關(guān)于libusb0.dll的依賴它只依賴系統(tǒng)的ntdll.dll、kernel32.dll、user32.dll這三個基礎(chǔ) DLL不像后來 libusb 1.0 還需要 WinUSB 或 libusbK 支撐。這既是優(yōu)點(diǎn)也是缺點(diǎn)優(yōu)點(diǎn)是部署到干凈 Windows 機(jī)器上不需要裝 VC Redistributable 運(yùn)行庫缺點(diǎn)是這個庫 32 位版只支持 32 位進(jìn)程如果你的上位機(jī)是 x64 編譯的得用包里msvc_x64目錄下那份獨(dú)立編譯的 x64 版 DLL兩個平臺的文件不能混用。3. 從枚舉到讀寫用 Visual C 完成一次完整 USB 通信3.1 初始化與設(shè)備枚舉先掃總線再按 VID/PID 找設(shè)備寫代碼之前先把bin目錄里的testlibusb-win.exe跑一遍它會列出當(dāng)前總線上所有 USB 設(shè)備的總線號、設(shè)備號和 VID/PID這個輸出可以用來驗(yàn)證驅(qū)動是否裝成功了。如果這步出來的列表是空的問題九成在驅(qū)動沒綁上而不是代碼問題。下面是我實(shí)際項(xiàng)目里用的初始化模板#include stdio.h #include usb.h int main(void) { struct usb_bus *bus; struct usb_device *dev; usb_init(); // 初始化 libusb 內(nèi)部狀態(tài) usb_find_busses(); // 掃描系統(tǒng)里的 USB 總線 usb_find_devices(); // 掃描每條總線上的設(shè)備 for (bus usb_get_busses(); bus; bus bus-next) { for (dev bus-devices; dev; dev dev-next) { printf(%04x:%04x bus%s dev%s\n, dev-descriptor.idVendor, dev-descriptor.idProduct, bus-dirname, dev-filename); } } return 0; }usb_init()只需要調(diào)一次usb_find_busses()和usb_find_devices()每次重新枚舉時都要成對調(diào)用比如熱插拔之后要從頭再掃一遍。usb_get_busses()返回的是靜態(tài)分配的鏈表頭遍歷時不用自己釋放內(nèi)存。鏈表中每個usb_device結(jié)構(gòu)體里的descriptor字段存放了設(shè)備描述符idVendor和idProduct是識別設(shè)備最關(guān)鍵的兩個值后面的usb_open()是拿設(shè)備句柄而查找匹配得靠這兩個 ID。3.2 打開設(shè)備與聲明接口內(nèi)核里有個「互斥鎖」在等你找到設(shè)備之后下一步是打開并聲明接口。這里有個容易翻車的地方usb_open()成功只能說明句柄拿到了但如果你不調(diào)usb_claim_interface()后續(xù)的usb_bulk_write()會返回-EBUSY。原因是 LibUSB-Win32 在內(nèi)核驅(qū)動里給每個接口加了一把互斥鎖一次只允許一個進(jìn)程占用接口不聲明接口就相當(dāng)于沒進(jìn)臨界區(qū)。usb_dev_handle *handle usb_open(dev); if (!handle) { fprintf(stderr, usb_open 失敗: %s\n, usb_strerror()); return -1; } // 拿配置描述符里的接口數(shù)一般設(shè)備只有一個接口 int ret usb_claim_interface(handle, 0); if (ret 0) { fprintf(stderr, usb_claim_interface 失敗: %d, %s\n, ret, usb_strerror()); usb_close(handle); return -1; }usb_claim_interface的第二個參數(shù)是接口編號多數(shù)設(shè)備是 0。有些復(fù)合設(shè)備有多個接口比如聲卡加按鍵控制那就得逐個 claim但 LibUSB-Win32 對多接口同時 claim 的支持不完整我實(shí)測在雙接口設(shè)備上第二個接口經(jīng)常 claim 失敗遇到這種情況建議只碰主接口。usb_strerror()是排查錯誤的好幫手幾乎所有 API 返回負(fù)數(shù)時都能用它拿到人類可讀的原因比裸看錯誤碼強(qiáng)太多。3.3 批量傳輸端點(diǎn)地址與包大小的四組關(guān)鍵參數(shù)批量傳輸是 USB 設(shè)備最常用的數(shù)據(jù)通道方式examples/bulk.c里就有現(xiàn)成的例子。它的邏輯很直接從 bulk-in 端點(diǎn)收數(shù)據(jù)、往 bulk-out 端點(diǎn)發(fā)數(shù)據(jù)。改參數(shù)時看四點(diǎn)int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, int timeout); int usb_bulk_write(usb_dev_handle *dev, int ep, const char *bytes, int size, int timeout);ep是端點(diǎn)地址注意它包含了方向位——0x81 表示 endpoint 1 IN設(shè)備到主機(jī)0x01 表示 endpoint 1 OUT主機(jī)到設(shè)備地址里的最高位 0x80 就是方向標(biāo)志照抄設(shè)備數(shù)據(jù)手冊里的端點(diǎn)描述符即可。size是單次傳輸?shù)淖畲笞止?jié)數(shù)這個值必須小于等于端點(diǎn)描述符里的 wMaxPacketSize超了驅(qū)動會給你攔下來或者拆包。timeout單位是毫秒0 表示無限等待我建議實(shí)際項(xiàng)目里不要設(shè) 0設(shè)個 1000 就夠不然設(shè)備異常時線程會卡死在驅(qū)動里。返回值是實(shí)際傳輸?shù)淖止?jié)數(shù)負(fù)數(shù)是錯誤碼。// 從端點(diǎn) 0x81 收一包超時 1000ms char buffer[64]; int len usb_bulk_read(handle, 0x81, buffer, sizeof(buffer), 1000); if (len 0) { // 常見錯誤: -110 超時, -4 設(shè)備不存在, -9 接口未 claim fprintf(stderr, bulk read failed: %d\n, len); } else { process_packet(buffer, len); }真實(shí)設(shè)備上有個規(guī)律大批量數(shù)據(jù)比如幾百 KB要拆成多次usb_bulk_read循環(huán)調(diào)用因?yàn)閱未?size 受端點(diǎn)最大包限制。我一般先把端點(diǎn)描述符的 wMaxPacketSize 打印出來然后按這個值設(shè) size配合 while 循環(huán)去收完整個數(shù)據(jù)流。如果傳來的是變長幀很多設(shè)備會在包末尾帶一個短包或 ZLP零長度包來標(biāo)記結(jié)束代碼里要留意len 0的情況別當(dāng)錯誤處理。3.4 控制傳輸讓設(shè)備進(jìn)入配置模式的標(biāo)準(zhǔn)動作除了批量傳輸控制傳輸是 USB 設(shè)備另外一個逃不掉的通道所有標(biāo)準(zhǔn)請求獲取描述符、設(shè)置配置、設(shè)置地址都走控制管道。LibUSB-Win32 里對應(yīng)的是usb_control_msg它在底層幫你構(gòu)造了 Setup Packet比直接調(diào) DeviceIoControl 要友好很多。int usb_control_msg(usb_dev_handle *dev, int requesttype, int request, int value, int index, char *bytes, int size, int timeout);requesttype是 bmRequestType重點(diǎn)看它的三個位段bit7 是方向0x80 表示設(shè)備到主機(jī)bit6-5 是類型0x00 標(biāo)準(zhǔn)、0x20 廠商、0x40 保留bit4-0 是接收者0x00 設(shè)備、0x01 接口、0x02 端點(diǎn)。request是 bRequest標(biāo)準(zhǔn)請求里 0x06 是 GET_DESCRIPTOR0x09 是 SET_CONFIGURATION廠商自定義設(shè)備通常用 0x00-0xFF 里的值具體查設(shè)備手冊。value和index的含義跟著請求走比如 GET_DESCRIPTOR 時value高字節(jié)放描述符類型0x02 配置描述符、低字節(jié)放索引index放語言 ID。實(shí)話說控制傳輸最容易出錯的就是 bmRequestType 的位段拼錯我在往一個指紋模組寫廠商控制命令時就因?yàn)樵?requesttype 里漏了 0x80 方向位導(dǎo)致設(shè)備一直不回?cái)?shù)據(jù)最后用 USB 分析儀抓包才定位到。建議調(diào)試初期先把標(biāo)準(zhǔn)請求比如 GET_DESCRIPTOR調(diào)通確認(rèn)控制管道沒問題再碰廠商私有命令。4. 避坑與排查LibUSB-Win32 在 Windows 上的五個常見翻車點(diǎn)4.1 安裝了過濾器驅(qū)動但 testlibusb-win 看不到設(shè)備現(xiàn)象install-filter.exe執(zhí)行完顯示成功設(shè)備管理器里也出現(xiàn)了 LibUSB-Win32 Devices但跑testlibusb-win.exe列表里就是沒有目標(biāo)設(shè)備。原因設(shè)備管理器里看到的不一定是「被 libusb0.sys 接管」的狀態(tài)。常見情況是系統(tǒng)里同時裝了廠商官方驅(qū)動LibUSB-Win32 的過濾器掛在了驅(qū)動棧的上層而usb_find_devices()是通過遍歷 USB 總線上的設(shè)備節(jié)點(diǎn)來枚舉的沒有暴露給 libusb0 的設(shè)備自然掃不到。解決在設(shè)備管理器里找到目標(biāo)設(shè)備右鍵「更新驅(qū)動程序」→「瀏覽我的電腦」→「讓我從列表中選取」選 LibUSB-Win32 Device 那個條目。如果列表里沒有把bin目錄下的libusb0.inf手動指定一下路徑再選。裝完之后把設(shè)備拔插一次確保驅(qū)動棧重新綁定。4.2 64 位系統(tǒng)下程序一啟動就崩潰錯誤碼 0xC0000135現(xiàn)象程序編譯通過運(yùn)行后立刻彈「找不到 libusb0.dll」或者直接啟動失敗。原因LibUSB-Win32 的 x64 DLL 和 32 位 DLL 不能互相替代如果你用 x64 編譯器、但鏈接了 32 位版導(dǎo)入庫運(yùn)行時加載 DLL 的架構(gòu)匹配不上直接掛。更隱性的坑是系統(tǒng) PATH 里存在一個舊版本 DLL應(yīng)用程序從 PATH 里找到了錯誤位數(shù)的庫。解決把bin目錄里對應(yīng)架構(gòu)的 DLL 拷貝到 exe 同目錄這樣可執(zhí)行文件會優(yōu)先從自身目錄加載。VS 工程里注意 link 選項(xiàng)的Additional Library Directories用lib/msvc_x64還是lib/msvc兩個目錄不能加錯。調(diào)完記得用 Dependency Walker 看一眼實(shí)際加載的 DLL 路徑。4.3 反復(fù)-110超時但同一條命令在 Linux 下是好的現(xiàn)象usb_bulk_read老是返回 -110超時換到 Linux 上同一個設(shè)備同樣的讀寫操作完全正常。原因Windows 對 USB 有 EHCI/xHCI 控制器級別的不同調(diào)度策略LibUSB-Win32 對中斷傳輸和批量傳輸?shù)木彺婀芾頉]有 libusb 1.0 那么激進(jìn)而且這個老庫對高速批量端點(diǎn)Bulk-Only的處理有個已知限制——單次傳輸 size 過大時容易超時。解決把單次 size 從端點(diǎn)的 wMaxPacketSize 改成它的一半或者每次讀前先發(fā)一個 0 字節(jié)控制請求重置設(shè)備端點(diǎn)。我習(xí)慣把 size 設(shè)為 4096 以下實(shí)測 -110 的概率會大幅降低。另外檢查一下usb_set_configuration(handle, 1)有沒有調(diào)用沒設(shè)配置就讀寫會有詭異行為。4.4 USB 線一拔程序就死鎖回收線程卡在 usb_close現(xiàn)象設(shè)備熱插拔之后負(fù)責(zé)通信的線程沒有異常返回而是直接掛死調(diào)試發(fā)現(xiàn)卡在usb_close()或者usb_release_interface()。原因LibUSB-Win32 在設(shè)備突然斷開時不會給所有阻塞中的 IO 請求立即返回錯誤驅(qū)動棧的處理方式是等待超時或下一次訪問時報(bào)錯這在拔線的瞬間會形成窗口。解決程序里不要依賴單次調(diào)用的返回值來判斷設(shè)備斷開要疊加一個心跳機(jī)制——周期性地發(fā)一個輕量控制請求比如 GET_DESCRIPTOR 或者廠商自定義的讀版本號命令連續(xù)失敗 N 次再觸發(fā)usb_reset()或usb_close()。同時把timeout從 0 改成有限值別讓線程無限阻塞。4.5 同一臺電腦上多個進(jìn)程互相搶設(shè)備現(xiàn)象兩個上位機(jī)程序同時操作同一個 USB 設(shè)備后啟動的進(jìn)程 claim 接口失敗甚至先啟動的進(jìn)程也出現(xiàn)間歇性讀取錯誤。原因LibUSB-Win32 的互斥是接口級別的不是設(shè)備級別的而且它在多個進(jìn)程上的行為不如 libusb 1.0 穩(wěn)定。解決設(shè)計(jì)上做一個單實(shí)例互斥體CreateMutex帶固定名字同一時刻只允許一個進(jìn)程打開設(shè)備。如果需要多個進(jìn)程協(xié)作讀寫不同端點(diǎn)建議改用 libusb 1.0 的libusb_set_auto_detach_kernel_driver那種方案。我這個經(jīng)驗(yàn)可能有點(diǎn)保守但在這個老庫上多進(jìn)程并發(fā)確實(shí)就是坑。5. 進(jìn)階用法與動態(tài)庫封裝把 LibUSB-Win32 變成 C/C# 都能調(diào)的模塊5.1 用 C 類把 C 接口包裝成 RAII 風(fēng)格句柄生命周期不再裸奔用裸 C API 寫大型上位機(jī)項(xiàng)目最大的隱患是usb_dev_handle*指針在異常路徑下容易泄漏——某一個usb_claim_interface失敗直接 return后面usb_close就不會執(zhí)行。我一般會做一層薄封裝把 LibUSB-Win32 的 C API 收進(jìn) C 類里。這里的關(guān)鍵是用一個 struct 來保存設(shè)備句柄、接口號、端點(diǎn)地址然后讓構(gòu)造函數(shù)負(fù)責(zé)枚舉和打開析構(gòu)函數(shù)負(fù)責(zé)釋放。注意這個類不能拷貝因?yàn)榭截惲司浔羔槙?dǎo)致兩次usb_close操作同一個內(nèi)存地址直接崩。class UsbDevice { public: UsbDevice(int vid, int pid, int interface_id 0) : handle_(nullptr), interface_id_(interface_id) { usb_init(); usb_find_busses(); usb_find_devices(); for (usb_bus* bus usb_get_busses(); bus; bus bus-next) { for (usb_device* dev bus-devices; dev; dev dev-next) { if (dev-descriptor.idVendor vid dev-descriptor.idProduct pid) { handle_ usb_open(dev); if (handle_ usb_claim_interface(handle_, interface_id_) 0) { return; } if (handle_) usb_close(handle_); handle_ nullptr; } } } } ~UsbDevice() { if (handle_) { usb_release_interface(handle_, interface_id_); usb_close(handle_); } } int BulkRead(int ep, char* buf, int size, int timeout_ms) { return usb_bulk_read(handle_, ep, buf, size, timeout_ms); } private: usb_dev_handle* handle_; int interface_id_; };這段代碼把「找設(shè)備、打開、聲明接口」壓縮到了構(gòu)造函數(shù)里每個步驟失敗時句柄都會被及時釋放不會出現(xiàn)半初始化的對象。實(shí)際使用時如果構(gòu)造函數(shù)執(zhí)行完handle_仍為nullptr說明設(shè)備沒插好或驅(qū)動沒綁直接拋異?;蚍祷劐e誤即可。析構(gòu)函數(shù)里usb_release_interface在設(shè)備已被拔掉時可能返回負(fù)值但析構(gòu)函數(shù)里不能拋異常所以這里我選擇忽略返回值讓usb_close去兜底清理。5.2 用 C# 的 P/Invoke 調(diào) libusb0.dll三種封送最容易出錯的類型如果上位機(jī)是 C# / VB.NET 寫的可以繞開 C 層直接 P/Invoke 調(diào)libusb0.dll。但這里有幾個類型映射不是想當(dāng)然就能抄對的我踩過幾個坎列一下常用的幾個函數(shù)簽名[DllImport(libusb0.dll, CallingConvention CallingConvention.Cdecl)] public static extern void usb_init(); [DllImport(libusb0.dll, CallingConvention CallingConvention.Cdecl)] public static extern int usb_find_busses(); [DllImport(libusb0.dll, CallingConvention CallingConvention.Cdecl)] public static extern int usb_find_devices(); [DllImport(libusb0.dll, CallingConvention CallingConvention.Cdecl)] public static extern IntPtr usb_open(IntPtr usbDevicePtr); [DllImport(libusb0.dll, CallingConvention CallingConvention.Cdecl)] public static extern int usb_claim_interface(IntPtr dev, int iface); [DllImport(libusb0.dll, CallingConvention CallingConvention.Cdecl)] public static extern int usb_bulk_read(IntPtr dev, int ep, byte[] bytes, int size, int timeout); [DllImport(libusb0.dll, CallingConvention CallingConvention.Cdecl)] public static extern int usb_bulk_write(IntPtr dev, int ep, byte[] bytes, int size, int timeout); [DllImport(libusb0.dll, CallingConvention CallingConvention.Cdecl)] public static extern int usb_close(IntPtr dev);三個注意點(diǎn)第一usb_bulk_read的 buffer 參數(shù)用byte[]就可以CLR 會自動把它釘在內(nèi)存上不需要手動GCHandle.Alloc但前提是size不能超過數(shù)組長度超了會踩內(nèi)存。第二CallingConvention一定要是Cdecllibusb0.dll 的導(dǎo)出函數(shù)是 C 調(diào)用約定如果寫成默認(rèn)的Winapi也就是 stdcall64 位下也許碰巧沒問題32 位下必定棧錯亂。第三usb_open接收的是usb_device*指針在 C# 側(cè)如果是通過遍歷usb_get_busses()拿到的先封成IntPtr再傳不要試圖直接拿托管結(jié)構(gòu)體去轉(zhuǎn)。之前有人在論壇上問為什么 C# 里usb_bulk_read總是讀不到數(shù)據(jù)后來發(fā)現(xiàn)是usb_init忘調(diào)了——這個函數(shù)在 C 側(cè)省略調(diào)用偶爾也能工作因?yàn)?DLL 內(nèi)部有默認(rèn)初始化但在跨語言調(diào)用時丟一次初始化就會讓內(nèi)部狀態(tài)機(jī)完全不對。所以 C# 里嚴(yán)格按照usb_init → usb_find_busses → usb_find_devices順序來一步都不能省。5.3 部署細(xì)節(jié)DLL 該放哪、驅(qū)動怎么跟隨 U 盤分發(fā)最后一個影響交付體驗(yàn)的點(diǎn)是部署。LibUSB-Win32 的驅(qū)動安裝本質(zhì)是修改了系統(tǒng)的 USB 驅(qū)動棧配置所以「綠色版免安裝」是不存在的哪怕程序本身不用安裝驅(qū)動必須裝一次。我現(xiàn)在的做法是做一個driver_installer目錄里面放install-filter.exe、libusb0.dll、libusb0.sys、libusb0.inf然后寫一個 bat 腳本把 DLL 拷到 exe 同目錄避免 PATH 污染。echo off set BIN_DIRdriver_installer set APP_DIR. echo [1/2] 安裝 LibUSB-Win32 過濾器驅(qū)動 %BIN_DIR%\install-filter.exe -q echo [2/2] 部署 libusb0.dll 到程序目錄 copy /Y %BIN_DIR%\libusb0.dll %APP_DIR%\ copy /Y x64\libusb0_x64.dll %APP_DIR%\libusb0_x64.dll echo 完成。請將設(shè)備插入 USB 口后重新運(yùn)行程序。 pause這個腳本里的-q參數(shù)是靜默模式但實(shí)測在某些 Windows 版本上靜默安裝會失敗失敗時就去掉-q讓用戶手動選設(shè)備。設(shè)備文件不加簽名所以安裝時用戶會被 UAC 彈窗問一次是否允許更改設(shè)備設(shè)置這是預(yù)期行為要在交付說明里寫明。我還踩過一個跟 VC 運(yùn)行庫相關(guān)的坑程序如果靜態(tài)鏈接了新版 MSVC 的運(yùn)行庫部署到?jīng)]有裝過 VS Redistributable 的機(jī)器上會報(bào)錯建議項(xiàng)目屬性里把/MT換成/MD或者直接把對應(yīng)的 vc_redist 塞到安裝包里。從那以后我每次交付 LibUSB-Win32 相關(guān)的上位機(jī)都強(qiáng)制自己走一遍完整流程新裝一臺干凈的 Windows VM插設(shè)備、裝過濾器、跑 testlibusb-win、再跑自己的程序。這套驗(yàn)證流程幫我提前擋掉了大部分用戶側(cè)的「驅(qū)動沒裝對」「DLL 版本不對」問題。這個老庫雖然不像 libusb 1.0 維護(hù)得那么活躍但在不少工控方案里它仍然是首選因?yàn)榻涌诤唵?、依賴少把上面這幾個坑避開它就能在本地上好好干活。希望這篇拆解能幫你節(jié)省幾個晚上的排查時間。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
一级免费啪啪片| 亚洲欧洲第二视频在线观看色图| 日本一级婬片试看三分钟| 日韩综合色网| 久草精品一区| 熟妇精品juliaannAV| 久久久18| 国产高清无码一区二区三区四区皇冠| PMv在线观看| 中国91AV| 超碰久超碰久| 91中出在线| 少妇精品久久久| 免费的av网| 又黄又爽在线观看视频 | 啊啊啊啊嗯嗯嗯用力好爽| 欧美第一页| 国产丸一视频| 白丝jkav| 国产乱弄免费在线视频。| 婷婷五月色| 午夜寂寞欧美| 亚洲欧美中文日韩视频中国语 | 欧美色www亚洲国产阿娇要播| 久久99草| 日欧毛片久久| 久久久999国产精品| 日韩淫色网| 中国黑人三级片网站上区| 尹人大香蕉视频在线| 久久综合激情| 小少妇| 丁香五月天啪啪| 激情五月综合| 五月天婷婷欧美三区| 丁香五月天堂| 欧美大香蕉97| 欧美与日韩97| 插B在线观看| 神马九九九| 少妇丝袜在线观看AV| 国产一区二区三区,在线观看观看| 91视频国品一二三区| 亚洲成人在线播放| 69综合网| 中文字幕无码不卡啪啪| 天天看夜夜看日日干| 91精品国产91综合久久蜜臀| 92性色国产午夜福利在线661| 两女互慰AV高潮喷水在线观看| 啪啪啪亚欧美视频| 亚洲āv网址在线观看| 中英熟女操女| 亚洲成人性爱在线观看| 99久久九九| 精品国产乱码久久久久久久久1 | 久久久性爱| dy888午夜老子影视达达兔| 人妻另类 专区 欧美 制服| 激情婷婷综合久久| 色综合超碰超| 欧美丝袜亚洲| 国产视频一区二区三区在线免费观看| 免费啪啪一级视频| 日韩懂色网| 亚洲九九视频在线观看| 欧美精品精品一区二区| 97综合在线| 超碰性爱97| 久久精品国产97欧美精品亚洲| 蜜臀久久99精品久久久| 黄片免费久久久久久久| 看看小穴| www.成人无码| 久草网站免费在线观看| 精品亚州18| 男人的天堂VA| 国产精品嫩草影院免费| 天综合网| 国内毛片四区| 日韩人妻有码免费视频| 精品一区二区三区蜜桃臀赵总| 97超碰天天| 久久久久久无码人妻中文字幕| 91亚洲人| 欧美另类色图片| 久久精品99久久久久久| 国产亚洲美日韩Aⅴ中文字幕无码成人| 天天干,天天日| 97香蕉人人乳| 美女熟妇色| 欧美日韩一二三| 精品久久久久久AV无码| 无码99| 校园春色欧美| 亚洲欧美经典一区二区| 日日骚精品视频| 91久久久亚洲| 96久久科窝| 亚州,欧美在线| 中文字幕精品日韩中文字幕| 9999九九九久久久| 天堂俺去俺来也www久久婷婷| 五月综合久久| 91丝袜人妻| 国产极品美女高潮无套在线观看| 五月丁香综合激情| 综合色区偷拍| 五月天啪啪| 精品无码一区二区三区| 日韩一级片在线看| 亚洲综合网91| 久久不卡一区二区| 少妇熟女1区2区3区| 色噜噜国产在线| 久久少妇| 激情四射五月天| 日本性爱不卡视频| 婷婷丁香人妻| 爱射综合| 操逼无码操逼| 久久精品电影| 国产尹人在线视频免费| 97久久超碰国产精品| 韩日无码在线观看| 男人天堂毛片| 搞中出视频在线观看| 黄片aaaaa一区| 日本布卡一区二三区| 91精品无码人妻系列| 日本成人A片免费看| 伊人久久大香线综合无码| 蜜乳成人AV| 亚 欧 美 综合| 国产剧情在线| 日韩美女高潮喷水视频| 日韩一级免费性爱| a'v在线资源| 综合亚洲情色| 97国产高清视频在线观看| 干美女人妻| 思思热在线视频精品| 一级性爱网| 制服少妇欧美| 久久99网站| 丰满美女一级毛片在线播放| 人妻天天爽夜夜爽2| 99这里有精品| av在线观看不卡网站| 黑人综合色| 日韩欧美视频青青| 精品国产91av一区二区三区| 精品久久久一本一道| 人人色97| 午夜120视频在线观看| 高清孕妇孕交 交孕妇| 超碰狠狠操| 97无码视频在线播放| 歐美性天天| 欧美v亚洲v日韩v最新在线二区| 97资源亚洲| 北条麻妃性愛视频| ss久久| 久久精品中文字幕无码l| 一区二区三区男人的天堂| 一区,二区,三区网站| 免费亚洲黄色视频在线观看| 人妻铁牛TV| jiujiujiujingpin| 97超碰巨乳| 视频二区美腿丝袜制服人妻欧美| 色青青久久影视| 国产精品白领在线观看| 午夜操一视频一区| 久久久亚洲熟妇资源| 神马久久久久久久久久久久| 美女超碰978| 亚欧成人中文字幕一区| 日韩无码三级影院| 国产精品一二三区18| 欧美色图另类图片| 久草综合网| 91色色综合| 99抽插| 国产丝袜美女诱惑| 婷婷伊人綜合中文字幕| 亚洲欧美一区二区三区一猛片| 久久91| 99色热| 日产成人久久| 2019亚洲男人天堂| 岛国不卡超碰护士AV在线播放| 三级片大波波| 成人综合网 欧美| 天天日夜夜| 哈哈操电影AV| 自拍偷拍草一草| 亚洲欧洲日韩天堂av| 麻豆天美一区二区| 日日夜夜免费| 女人久久久| 97ai亚洲| 九九九九国产| 久久欲| 色呦呦国产精品免费看| 日韩免费中文字幕视频| 强奸乱伦 亚洲一区| av爱爱爱| 亚洲制服欧美另类内射| 丁香色五月 97干| 人、人、摸,人、人、草| 乱伦av.com| 亚洲AV秘 精品久久老牛影视| 男女猛烈无遮掩视频免费软件| 亚洲无码视频免费在线观看网址!| 日躁天天爽爽| 欧美日本中字另类在线| 日韩一级片在线看| 丁香五月婷婷基地| 欧美综合第一| 制服中出中文人人精品| 国产自偷| 97欧美综合| 中文一区二区三区影院| 久操网视频| 国语av最新自产拍在线观看| 五月丁香婷婷色| 欧美中文字幕男人天堂久久精品| 91中文精品日韩欧美在线 | 怡红院怡春院| 久污| 人人妻人人玩人人澡人人爽| 中文字幕国产在线天堂| 欧美一区二区三区蜜桃| 人妻av在线| 国产成自自拍在线观看| 加勒比性爱成人在线| 3P丝袜熟女 色综合| 中文字幕丰满人妻日本| 亚洲强奸乱伦影视网| 五月天色综合| 欧美日韩大陆黑人少妇99| 国产精品大屁股999| 加勒比aⅴ| 亚洲av青草久久一区二区| 一区二区三区亚洲| 天天做天天爱天天高潮| 动漫区日韩区欧美区| 青青久日| 日本午夜精品理论片A级APP发布| 亚洲蜜臀懂色| 天天久久| 国产人妻天天干精品| 大鸡巴久久久| 男人综合网| 国产一级内射无挡观看| 蜜桃成人1区2区3区| 欧美一级专区免费大片| 精品九九九九| 大香蕉婷婷| 欧美后入视频| 亚洲福利影院一区久久| 九九九九九九九精品视频| 伊人精品视频| 1769一区| 精品国产乱码久久久久久影片| 欧洲大香蕉| 欧美综合国产精品久久丁香| 亚洲国产第一页综合视频| 大香蕉琪琪日本女优不卡| 天天综合网网欲色| 男人天堂.AB| 国产精品农村妇女| www色色色com| 久操视频在线| 婷婷激情五月天小说网| 九九九九九九九九九九精品视频| 第四色奇米影视777| 97欧美精品综合| 久艹日日日| 再深点灬舒服灬太大了好硬好爽| 激情婷婷丁香| 久久精品国产亚洲AV嘿嘿| av在线人气| 超碰成人人人爽人人爽| 国产精品色哟哟| 亚州综合色| 国产剧情一区在线观看| 91情色在线| 日韩免费看黄片| 夜夜青青无码影院| 播播亚洲小说亚洲| 酒色综合网| 麻豆天美电影一区二区| 人人摸人人入| 久热精品色情| 亚洲 自拍偷拍 欧美| 欧美暴力猛交| 精品国产www久久| 素人伊尹大香蕉免费下载视频| 在线精品福利免费播放| 日本三级精品| 亚洲综合色男人网| 亚洲一区日韩精品中文字幕| 精品一久久久| 曰韩av中文字幕专区| 欧美丝袜中文字幕07在线| www久| 999精品乱码| caopeng97| 亚洲āv网址在线观看| 少妇500双飞99| 三级网色| 大香蕉伊人75| 97视频新免费| 男人的天堂亚洲| 91免费看一区二区三区| com 首页 18岁 禁区 女优 免费 精选 同城 | 亚洲国内精品成人不卡| 国产精品色色| 岛国毛片在线观看免费| 蜜臀中文无码午夜| 干b在线性社区| 在线一道啪| 骚货 中文字幕 av| 欧美激情欧美精品| 国产久久一区二区午夜| 国产精品福利视频播放| 大逼色网站| 顶级少妇BT天堂| 久久久亚洲高清不打码| 91A欧美电影网站| 综合干干干av久久久综合网| 日亚韩精品视频二区三| 国产精品国产精品国产| 精品久久久不卡一区二区| 国产精品亚洲一区二区三区四区| 99热在线观看| 亚洲精品久久一区二区三区蜜桃臀| 99热超碰| 亚洲暴力强奸AV| 欧美天天干| 麻豆天美制片厂网站视频| 国产树林里野战在线看| 在线播放成人高清免费视频| 欧美自拍网| 亚洲视频一二区| 久久久久9| 人人干黄色| 欧美色网络| 成熟熟女国产精品一区二区| 亚洲熟妇极品| 国产亚洲精品自在线亚洲情侣| 国产精品不卡高清在线观看| 欧日韩一二三f区| 做爱福利视频一区二区| 青青爽| 大香蕉乱伦视频网| 亚洲91色在线| 亚州色交| 激情综合97| 激情看片网站| 在线国产探花| 一级久久性爱视频| 亚洲砖码砖专无区2023| 国产高清精品一区二区三区毛片 | 久久这里是精品| 亚洲男人综合| 1769一区| 国产强奸乱伦xd| 亚洲欧洲av影音| 亚欧成人一级片在线播放| 一区二区三区男人的天堂| 亚州熟妇精品| 久久亚洲色图中文字幕| 搡老女人老91妇女熟女| 99re69综合| 99久久久无码| 亚洲色9| 啊啊啊啊啊啊啊好爽不要| 亚洲三级网址久久最新| 伊人精品视频| 综合91网| 亚洲国产亚洲天堂| 日本性一区| 欧美色图在线视频少妇| 亚洲日韩资源| 久久 精品| 草草电影院| 手机看片日韩人妻| 亚洲va有码在线天堂| 国产精品久久久久亚洲av| 亚洲一区二区三区中文字幕| 欧美大香蕉专区网| 五月丁香色情| 久久啊哟| 久草男人天堂| 国产日韩中文字幕欧美| 992视频一区| 激情综合五月婷婷| 丁香五月影院| 九九九久千久久激情蜜桃在线看| 伊人久久大香线综合无码| 免费看污网址| 欧美亚洲韩国视频十五区 | aaa亚无码专区| 乱伦一二三| 久久精品国产99精品亚洲蜜...| 成人小说视频在线精品欧美| 亚洲精品啪视频| 欧美日韩性爱视屏免费看了| 亚洲丝袜二区| 四虎884a| 青青青在线高清视频在线一二三四区| 亚洲综合首页| 亚洲最大成人a毛毛片| 黄色人人| 又黄又爽在线观看视频| 91N综合在线| 欧美综合色,www| 日逼97| 亚洲 欧美 色图| 香蕉黄色一级视频| 激情丁香五月| 欧美91丝袜| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 国产a片操逼| 亚洲少妇中文字幕网址| 国产午夜福利视频在线| 美女性91| 综合一区中亚洲国产成人综合精品 | 色色综合网站| 国产第二页| 搡老女人老91二区| 人人射人人操人人摸| 精品人妻一区二区三区-国产精品| 本道在线| 啪啪视频亚洲第一| 成人熟女视频一区二区三区| 成年人黄色| 5月婷婷6月六月丁香| 99热精品青草在线| 久久久久久精| 丝袜美腿诱惑亚洲欧美视频在线观看| 97色欧洲| 天天躁日日躁AAA片李宗瑞| 鸥美插入视频| 国产综合日韩伦理| 97蜜桃综合| henhen91| 狠狠狠狠狠干| 亚洲春色欧美| 日本网色| 欧美se综合| 中文字幕亚洲在线一区| 国产精品夜夜夜| 中文字幕日韩人妻视频一区二区三区 | 黑操B| 玖玖综合网| 深爱激情五月天| 2017天天操天天日| 久久婷五月| 91白嫩| 狠狠色婷婷7777久| 亚洲资源一区| 欧美大香蕉在线观看| 亚洲色宗合| 青青网三级视频| 69一区二区三区 | 97人人夜| 欧美毛片在线网| 亚洲色电影在线| 亚洲色婷婷| 天天色综合影视网| 色婷婷在线视频| 久久啊啊| 秋霞男人网| 日韩性爱视频在线免费观看| 日本三级韩国三级美三级91| WWW黄片COM| 精品人妻一区二区三区不卡断 | 色91综合网| 久久伊人亚洲AV无码网站 | 中文操嬖片。| 欧美精品激情| 蜜臀AV一区二区三区激情综合| 日韩一级欧美一级国产一级台湾| 久久久久久久78| 综合五月婷婷亚洲一区| 亚州精品人妻一二三区| 天天综合色电影| 精品欧美不卡在线播放| 成人精品一区二区三区| 欧美v亚洲v日韩v最新在线二区| 东京热毛片调教| 精品91摸| 国产成人精品日本视频| 加勒比综合| 狠综合网| 伊人激情| 午夜福利无毒不卡| 国产女人91精品嗷嗷嗷嗷| 久久久无码精品人妻二区 | 91亚洲综合在线| 一区二区三区四区姦女| 亚洲性爱无码乱伦av| 亚洲色图图片| 黄久在线| 欧美色图中文字幕| 人妻熟女av国产网站| 日韩亚洲欧美中文字幕| 9999久久久久| 艾草av| 91超碰人人操| 三级特黄60分钟播放| 熟女少妇一区二区三区| 欧美久久婷婷| 啊a一区在线| 日韩欧美中文| 为用户提供免费看黄网址在线观看| 婷婷五月天色网| 亚洲精品骚逼| 人人喜人人妻| 大香蕉啪啪啪| 午夜福利免费精品视频| 日韩欧美操逼xxx| 91 偷| 97精选久久| 91久久午夜无码鲁丝片久久人妻| 日韩成人精品中文字幕| 日本一区二区三区四区免费观看| 被窝影院午夜看片无码| 国产精品国产精品国产| 青青草在线视频美女| 亚洲AV无码久久精品蜜桃小说| 99热| 婷婷五月天AV| 91狠狠综合久久久| 抽插无码高清一区| 八人操人人摸人人看| 超碰在线人妻中文字幕| 99久久久无码国产精品性啊聊| 东京热91| 亚洲一区二区中文字幕| 色偷偷2020免费视频播放| 欧美综合网1| 密臀AV在线| 97天天做| 日本99一区二区| 亚洲综合影片| 欧美日韩精品国产91| 在线天堂999| 亚洲 中文 女同| 爱爱动态120秒| 久久久一区二区三区麻豆| 好屌色综合| 性性欧美| 中文在线视频| 欧美日本视频一区| 9.1小视频| 青青久日| 久久精品黄色| 人人人摸人人| 国产黄色影片在线观看| 岛国视频免费在线观看| 无码抄逼网| 99无码视频| 国产精品久久久亚洲一区| 日韩在线视频1234| 丝袜综合| 久草久日| 一本久道久久综合狠狠爱一密臀精| 91性网| 日本精品五区| 精品人妻一区二区视频| 在线v中文字幕一区二区三区 | 久久人妻无码毛片A片麻豆| 午夜精品人妻二区三区| 97鸡把在线视频| 国产熟妇 码视频户外直播| aaa亚无码专区| 久久av一级av少妇av高潮| 亚洲精品aa久久伊人| 亚洲人成网www| 人妻插插人妻人| 精品久久九| 中国91AV| 性色av大全| 天天日B夜夜干B时时操B| 久久97| 综合 青草 伊久久 影院 综合| 夜夜操一区二区| 日韩高清一二三| 久久精品店| 日B操| 日韩性爱啪啪视频| 亚洲av青草久久一区二区| 午夜精品久久久久久久久久蜜桃| 欧美日韩国产色图在线| 亚洲精品一二三四区| 久久人妻无码毛片A片麻豆| 欧美在线天堂| 日本五十路熟女一区二区| 翘臀vidoes| 国产熟女自拍| 欧美人人操人人插| AV中文在线| 久久99精品国产| 91 欧美| 不卡啪啪视频| 欧美97视频| 啪啪视频免费在线观看| 亚洲啪啪性视频| 色欲色香天天天综合网www-亚洲综合国| 中出91视频| 亚洲av综合色区图片亚洲| 人妻少妇蜜桃视频欧美一区| 影音资源男人日韩| 亚洲91在线播放影院| 欧美大码在线视频| 中文字幕成人乱码熟女精品国50| 国产理论视频在线播放| 91色综合激情| 99久久无码| 蜜臀久久99精品久久综合| 婷婷久久久精品| 日韩国产欧美伦理在线| 综合 青草 伊久久 影院 综合 | 中文字幕视频在线观看| 一级黄色性爱A级片| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 99日韩| 激情小说亚洲色图| A级毛片在线看免费| 国产成人午夜视频网址| 熟妇人妻一区二区| 欧美天天| 嗯啊免费视频| 亚洲在线欧美| 天美AV片| 国产精品自拍视频| 天天综合亚在线| 久久精品一区二区| 亚洲有码 欧美精品| 美女黄站| 久久9精品视频| 凹凸精品熟女在线观看| 欧美日韩m| 思思热一热婷婷热一热| 亚洲综合113页| 欧美18老人禁| 久久久婷| 国模无码人体一区二区三| 成人AV在线电影| 成人黄页| 久草免费在线一区二区| 精品丰满熟妇人妻一区 | 欧美劲爆第一页| 后入美女国产| 黑人精品XXX一区一二区| 91美乳| 精品欧美А∨无码黑人大荫蒂 | 色综合天天| 亚洲人人夜夜澡人人爽| 99热伊人| 思思热在线视频在线| 久久爽爽精品| 亚洲精品美女久久久久久久久| 91日产桃蜜| 欧美色偷拍| 成人性爱av| 福利五区| 久久精品视频久久久| 欧亚性爱在线视频| 加勒比综合在线| 一区二区三区国产精产| 约操熟妇| 九色黄站| A级国产欧美激情在线| 亚洲熟妇熟在线电影视频| 亚洲一区二区三区中文字幕| 欧美日韩国产精品久久色婷婷| 亚洲中文字幕噜噜噜久久久| 天天干天天燥| 欧洲视频在线| 天天干天天日天天射黄色片| 日本精品一区二区中文字幕| 秋霞怕怕片| 四虎在线免费视频| 五月天春色激情网| 国产又粗又长又爽又色| 欧美精品久久96人妻无码| 九九九精品一区二区无码| 婷婷中文字幕| www.久久最新地址| 欧美狠狠| 我要色综合网站| 欧美情色贴图| 99丝袜福利在线播放| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 一二三啪啪专区| 国产激情av女片自拍| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 大香蕉琪琪日本女优不卡| 欧美 亚洲 制服 精品| 干婷婷综合网| A级毛片在线看免费| 亚洲天堂男| 国产不卡的视频| 精品久久久久久久久久久久 | 777超碰| 呻吟 欧美 日本 中出| 97色欧州| 麻豆天美久久91| 成人国产精品三级A片| 一级@啪啪视频| 97在线视频免费观看| 青女偷拍网| 日本最新1区2区3区| 中国黑人三级片网站上区| 美女尤物福利视频| 麻豆久久久一区二区| 囯产乱伦一区二区三女 | 99精品高潮| 欧亚久久偷拍视频| 欧美久久毛片基地| 亚洲国产剧情少妇激情| 久久婷婷色综合一区二区三区| 超碰91在线| 免费综合亚洲中文| 抽插无码高清一区| 人人做人人妻人人夜视频| 欧美老妇曰批的视频| 性爱视频啪啪啪啪| 中美日韩毛片| 你操综合| 美女露胸露奶头| 欧美日韩国产中文精品字幕自在自线,| 欧美性爱伊人| 国产免费永久精品无码| 国产亚州日韩欧美看片| 亚洲最大无码中文字幕网站| 人人妻人人狠人人| 欧美疯狂做爰xxxx| 久久婷五月| 99性爱| 亚洲色图久久成人| 欧美狠狠操| 青青国产在线拍揄自揄拍| 久久色一区二区| 欧美乱妇狂野欧美在线视频| 啊啊啊好大好湿| 久久综合av| 国产乱不卡| 青青草一区二区高清无码视频| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 亚洲自拍一区夜夜操| 欧美日韩大陆黑人少妇99| 欧美亚洲国产日本在线,久久精品国产| 日本一久是| 亚春色色| 国产精品香蕉| 热无码中文亚洲H一道本一区二区| 日韩性爱1级片视频| 亚洲黄色网址视频| 啪啪一区| 草伊人高潮喷水超碰| 在线情色电影 91大| 激情综合 婷婷五月 红杏| 国产精品久久久 | 操www| 欧美十八禁在线看| 91亚洲不卡一区| 九九国产| 校园春色五月天| 97在线精品观看视频| 中字乱伦AV| 超碰在线974| 人妻无码一区二区三区久久99| 中文字幕成人乱码熟女精品国50| 无码不卡亚洲成?人片| 成年女人黄网站| 色性综合| 欧美在线综合| 一级一性爱免费视频| 日韩精品黄片免费观看| 亚州色交| 综合情欲网| 国产强奸AV在线| 乱色视频中文字幕| 久久999久| 亚洲超碰97| 成人免费不卡在线视频| 台湾佬中文娱乐自偷自拍| 亚洲素人综合| 日本色色视频网站| 久7色| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 欧美亚洲首页| 欧美日韩性爱无码| 久艹伊人精品综合在线| 蜜臀中文无码午夜| 脫衣舞一区二区三区| 精品人妻二区三区| 97超碰大| WWW黄片COM| 久草精品视频| 一区二区免费电影久久| 伊人天堂在线| 亚洲欧洲日韩中文字幕一区| 国产操偷| 精品美女少妇一区二区三区| 天美传媒精品一区二区| 五月婷久久| 夜夜做夜夜爽精品视频| 岛国视频一二三区| 中出789在线视频| 国产精品爆乳懂色蜜乳| 亚洲91极品| 国产精品久久久久婷婷二区次| 日韩精品亚洲专区在线影视| 久久超碰大香蕉| 国产成久久综合片| 人妻在线中出视频| 久久精品一区二区三区四区五区| 欧美在线视频99| 少妇色欲综合网2| 国产AV超爽| 91在线一起| 国产综合操逼高清| 国产三级中文字幕粉嫩| 国产成人www免费人成看片| 人妻黑丝袜电影| 超碰成人公开| 综合av影片| a v网站在线播放| 99热8| 日韩av在线播放不卡| 亚洲色图第四色| 婷婷丁香五月天综合东京热| 91熟女.com| 日韩,欧美,中文在线| 欧美综合狠| 欧美日韩999| 亚洲美女精品九九视频| 天天综合日韩网| 极品销魂美女一区二区| 99在线观看无大码| 日本操逼视频导航| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 国产传媒美日韩av| 99re公开精品免费视频| 久久网亚洲| 人妻AV在线| 日韩一级二级三级免费看完整版| 久久精品视频久久久| 国产精品4p在线观看| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 青青草伊人久久| xxx0国产在线播放| 东京热91| 精品人妻一区二区三区-国产精品| 天天激情综合站| 久久久久无码一妻区| 亚洲中文字幕网| 日本一级真人黄色性爱视频| 国产超碰在线一区| 91丨熟女丨丰满熟女| 中文字幕精品码亚洲| 国产精品熟女AV中文字幕在线播放| 影音先锋少妇| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲限制级| 免费看日产一区二区三区| 欧美99999| 精品久久艹| 欧美日韩性感| 国产中文字幕曰本毛片| 欧美天天射| 欧美玖玖爱免费玖玖| 亚州色交| 久久久精品视频免费观看| 91天天| www久久精品| 97色97好| 亚洲欧美成人在线| 国产一级内射无挡观看| 亚洲无码一区成人免费午夜| 日韩国产十八禁| 激情久久久| 欧美老妇曰批的视频| 久久区| 亚洲大色鬼| 亚洲乱色视频一区、二区在线| 欧美成人午夜免费福利785| 婷婷色色五月天福利| av天堂加勒比| 亚洲性少妇| 玖玖爱综合| 九九九九久久久| 欧美性爱伊人| 波多野结衣一级视频| 91色狼| 色九九久九九| 加勒比av官网在线| 久久免费看高潮毛片韩国| AA丁香综合激情| 久久精品色欧美aⅴ一区二区| 久久性生大片免费观看性| 精品一区二区三区18| 久久噜| 欧美综合在线91| 九久久九精品视频| 天天流夜夜操| 国产一级片| 99热只有这里有精品| 国产精品久久久久无码A√| 日本成人在线不卡一区二区三区| 欧美美逼| 成人草草视频| 国产不卡的视频| 龙兴卡官方查询| 蜜臀亚洲综合一二三四区| 国产熟女一区二区丰满| 极品丝袜无码| 欧美综合骚| 日韩av女优在线免费一区| 亚洲综合色网| www.夜夜| 青青操青娱乐| 欧美 亚洲 综合 制服| 亚洲中文字幕噜噜噜久久久| 69精品人人人人| 九月色婷婷| 欧美激情综合色综合啪啪五月| 欧美视频在线视频免费va| A片 AV一级在线播放观看免费| 国产操偷| 国产一区二区视频在线播放| 91精品国产高清久久久久久,亚洲成人 | 久久久久亚洲Aⅴ无码| 岛国艾薇凹凸视频天堂| 韩日无码在线观看| 亚洲中文字幕网| 中文字幕第页| 嗯啊不要啊啊在线观看视频| 中文字日本乱码| av麻豆啪啪| 国产91专区| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 欧美成人一级麻豆| 亚洲成人黄色在线观看| 久久男人精品| 丰满人妻大屁一区二区| 五月婷婷六月激情| 精品人妻一区二区三区-国产精品| 男人天堂站| 麻豆精品天美| 男人的天堂三级| 另类图片天天影视| 操人人| 无色无码| av天堂影视中文在字幕在线中文 | 天天综合-91入口| 久久丁香久草综合网| 亚洲AV噜噜狠狠网址蜜桃动漫| 丰满人妻av一区二区三区| 亚洲不卡AV在线| 欧美日韩国产电影| 淫纸中9区| 在线亚洲欧美| 欧美精品xxxwww| www.色婷婷.com| 熟女中出视频| 97在线视频观看免费| 91久久久久久久久18| heyZO天然素人无码AⅤ专区| 俺去俺来也在线www| 中文字暮97| 亚洲男人的天堂网| 九九九九精| AV网站高清无码在线观看| 天天摸,夜夜摸| 精品美女久久一二三| 欧美精品黑人猛交高潮| 久久受www免费人成| 91人妻PORNY九色大屁股| 欧美亚洲影视| 久久精品无码专区| 人妻少妇被猛烈进入中| 中文字幕第页| 欧美黑人91| 无码一区免费在线不卡| 亚洲精品成人激情在线| 久草资源欧美在线视频| 9精品久久久久| 夜夜天天噜狠狠爱2021| 麻豆60秒| 九九九国产精品| 精品中文字幕一区二区| 素人播放一区| 久久精品女同亚洲女同13| 精品久久无码午夜福利| 色色色综合| 日韩人人精品| 人人操人人插人人摸人人干| 亚洲国产欧美日韩人妻日中文| 91在线丝袜| 日韩精品碰碰| 欧美大香蕉97| 少妇综合| 一区二区偷拍拍视频| 97精品视频在线| jizzjizz欧美| 亚洲中文字幕日产无码久久| 男人的天堂2018| 天天干一干| 蜜臀中文无码午夜| 亚洲美女自拍偷拍视频| 情色五月天网| 亚洲激情综合另类男同| 伊人大香蕉在线| 性综合网| 无码99| 伊人天天久久动态图| 狠狠干综合| 78精品| 亚洲无码99| 伊人九九| 开心五月深爱五月| 91n处女在线观看| www.色操逼| 国产97/欧美| 国内自拍 日韩激情 99| 啊啊啊轻点在线观看| 免费中文在线| 亚洲精品国产熟女久久久| 亚洲精品第一| 日本不卡免费二区| 久久婷婷亚洲| 久久久久久久久一区二区三区| 亚洲成人在线播放| 一区二区视频在看| 麻豆久久视频在线地址| 亚洲激情片| 中文字日本乱码| 高潮的A片激情扒开一区| 久草男人天堂| 欧美人妻一区| 欧美激情内射| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 欧美肥臀在线| 黑丝少妇在线观看| 秋霞怕怕片| 超碰夫妻97| 日人妻视频91| 久热最新在线杭州| 中文字幕 av v| 日本性爱欧美性爱| 一二视频神马久久传媒| 婷婷综合激情| 另类图片欧美激情综合| 黑人与人妻| 日韩国产中文字幕| 97久久网| 欧美猛交黑寡妇中文字幕| 五月丁香社区婷婷日韩欧美精品影院 | 亚洲国产精品9999在线观看| 国产精品乱码久久久久久久| 国产AV高清AV无码| 人妻少妇久久中文字幕一区二区 麻豆 | 2019天天操天天爽天天拍| 中文字幕aⅴ在线视频| 色欲久久99国产精品久久久久久| 大香蕉 222| 免费操逼视频下载| 欧美91在线| 亚州色图片在线色| 99无码精品| 国产高清吃奶免费视频网站| 骚货 中文字幕 av| 天堂资源欧美| 丁香九月激情啪| 久久久久亚洲熟妇熟女| 蜜臀一二三区| 欧美性后入| 五月丁香综合激情| 中文字幕,人妻,日韩| 清纯唯美综合| 成人在线午夜视频一区| 色综合91| 女人双腿搬开让男人桶| 乱伦一二三| 国产精品乱码久久久久久久久| 啊啊啊好舒服好爽啊啊啊视频| 午夜色婷婷| 强奸乱伦AV网站| 亚洲人妻在线精品| 久操视频在线| 最新av在线| 69人妻人人揉人人躁人人精品| 青娱乐久久艹| 精品国产一区二区三区在线播出| 日韩综合97p| 亚洲图片在线| 欧美视频第二页| 欧美性天天影视| 97香蕉碰碰人妻国产欧美| 91丨豆花丨熟女| 在线a亚洲视频播放在线| 欧美综合色图片| 亚洲诱惑天堂| 女生自91网站| 精品99999久久久久久| 色色五月天婷婷| 天天做日日爱夜夜爽| 亚欧性爱无码| 一级人妻性爱视频| 欧美色狠| 欧美激情综合网| 人妻精品一区二区| 97操97干| 福利五区| 久久久一区二区| silk lablo在线观看一区二区| 超碰激情808| 嗯啊啊啊轻点视频| 97香焦色区| 亚洲天堂区| 艹我哪美一区无码| 日韩人妻资源在线看| 婷婷激情五月| 丁香五月激情综合| 午夜大香蕉| 亚洲综合另类| 一区二区日韩欧美久久| 996热| 五月婷在线| 亚洲日本加勒比在线| 91粉芽高清在线一区二区| 天天日天天爽| 大香交伊人网| 天天透伊人| 亚洲AV乱码专区国产噜噜亚洲| 久久婷婷国产一区二区色| 97超碰色五月| 亚洲综合在线高清| 青久操| 足交视频老司机| 男女香蕉一区二区| 精品人妻15区| 免费在线视频97| 后入式免费视频| 国产毛片片精品天天看视频| 国产精品人妻无码久久久老鸭窝| 欧美日韩国产中文精品字幕自在自线| 日本福利社| 久久久久久亚洲精品不卡人乳 | 一区二区三区一亚洲中文字幕、综合区灬 | 乱久久久|