亚洲爆乳成AV人在线视菜奈实_欧美一进一出抽搐大尺度视频 _日本十八禁免费看污网站_国产一区二区怡红院_6080YY新视觉影院_蜜臀AV无码人妻精品_成人影院YY111111在线_成人欧美一区二区三区1314_少妇饥渴偷公乱A级无码

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
詳解WinCE下USB Host驅動開發(1)
深圳市盈鵬飛科技有限公司
收藏本文     查看收藏
    WinCE下所有的驅動都是以DLL的形式,被device.exe進程加載的,所以每個驅動程序中都要實現DllEntry函數。

    在注冊表的HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\鍵下保存了USB Host的驅動程序信息。當我們第一次插入USB設備時。因為不存在這樣的信息,所以系統會彈出一個“
未能識別的USB設備”的對話框,要求用戶輸入驅動程序的名稱。該名稱就是USB Host驅動DLL的文件名。在輸入了名稱后,系統會自動調用該DLL的USBInstallDriver函數。該函數
負責向注冊表添加USB Host驅動的信息,以便再次插入設備時,能夠識別該USB設備。其原型如下:

    BOOL USBInstallDriver(LPCWSTR szDriverLibFile);
    其中szDriverLibFile就是輸入的DLL文件名稱。返回TRUE表示注冊成功。
    在向注冊表注冊USB Host信息時,不能使用普通的注冊表函數,只能使用USBD提供的注冊函數。
    BOOL RegisterClientDriverID(LPCWSTR szUniqueDriverId);
    BOOL RegisterClientSettings(LPCWSTR szDriverLibFile, LPCWSTR             szUniqueDriverId, LPCWSTR erved, LPCUSB_DRIVER_SETTINGS lpDriverSettings);
    這兩個函數在USBD.DLL中,可以通過動態方式調用,也可以通過靜態方式調用。

動態方式如下:
HINSTANCE hInst = LoadLibrary(L"USBD.DLL");
if(hInst) {
 LPREGISTER_CLIENT_DRIVER_ID lpRegisterClientId =
  (LPREGISTER_CLIENT_DRIVER_ID)GetProcAddress(
   hInst,
   L"RegisterClientDriverID");
 if(!lpRegisterClientId)
  return FALSE;
 LPREGISTER_CLIENT_SETTINGS lpRegisterClientSetting =
  (LPREGISTER_CLIENT_SETTINGS)GetProcAddress(
   hInst,
   L"RegisterClientSettings");
 if(!lpRegisterClientSetting)
  return FALSE;
else
 return FALSE;
    此后,就可以通過lpRegisterClientId和lpRegisterClientSetting函數指針調用這些函數,最后記得要FreeLibrary。

靜態方式:
在.cpp源文件中加入
#pragma   comment(lib,"usbd.lib")
并在source文件的TARGETLIBS變量中加入$(_SYSGENOAKROOT)\lib\$(_CPUINDPATH)\usbd.lib
如此一來,就可以直接使用這兩個函數了。
1) BOOL RegisterClientDriverID(LPCWSTR szUniqueDriverId)
該函數注冊USB Host驅動程序的ID。
2) BOOL RegisterClientSettings(LPCWSTR szDriverLibFile, LPCWSTR szUniqueDriverId, LPCWSTR erved, LPCUSB_DRIVER_SETTINGS lpDriverSettings)
該函數負責注冊驅動程序的信息。
szDriverLibFile 設置為USBInstallDriver函數傳入的DLL驅動程序名稱。
szUniqueDriverId 設置為調用RegisterClientDriverID注冊的驅動程序ID。
erved 設置為NULL
lpDriverSettings 該參數是一個USB_DRIVER_SETTINGS結構體。其聲明如下:
typedef struct {
  DWORD dwCount;
  DWORD dwVendorId;
  DWORD dwProductId;
  DWORD dwReleaseNumber;
  DWORD dwDeviceClass;
  DWORD dwDeviceSubClass;
  DWORD dwDeviceProtocol;
  DWORD dwInterfaceClass;
  DWORD dwInterfaceSubClass;
  DWORD dwInterfaceProtocol;
} USB_DRIVER_SETTINGS;
    Count為結構體大小,其他項對應USB描述符。
    其中除Count外的各字段,如果不設置具體的值,可以設置為USB_NO_INFO。
這個結構體中的信息講反應到注冊表的HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\鍵下,用于在USB設備插入時,查找USB驅動。下面以一個例子說明:
BOOL USBInstallDriver(LPCWSTR szDriverLibFile)
{
 RETAILMSG(1,(TEXT("USBInstallDriver\r\n")));
 RETAILMSG(1,(TEXT("USBInstallDriver:%s\r\n"), szDriverLibFile));
 BOOL fRet = FALSE;
 USB_DRIVER_SETTINGS DriverSettings;
 DriverSettings.dwCount = sizeof(DriverSettings);
 DriverSettings.dwVendorId = 0x10C4;
 DriverSettings.dwProductId = 0x0003;
 DriverSettings.dwReleaseNumber = USB_NO_INFO;
 
 DriverSettings.dwDeviceClass = USB_NO_INFO;
 DriverSettings.dwDeviceSubClass = USB_NO_INFO;
 DriverSettings.dwDeviceProtocol = USB_NO_INFO;
 
 DriverSettings.dwInterfaceClass = 0;
 DriverSettings.dwInterfaceSubClass = 0;
 DriverSettings.dwInterfaceProtocol = 0;
 
 fRet = RegisterClientDriverID(L"USBTest");
 if (fRet) {
  fRet = RegisterClientSettings(
   szDriverLibFile,
   L"USBTest",
   NULL,
   &DriverSettings);
  if(!fRet)
   RETAILMSG(1,(TEXT("RegisterClientSettings error\r\n")));
 } else
  RETAILMSG(1,(TEXT("RegisterClientDriverID error\r\n")));
 return fRet;
}

在WinCE中,將設置信息分為了三組,每組3個值,
第一組:
dwVendorId、dwProductId、dwReleaseNumber
第二組:
dwDeviceClass、dwDeviceSubClass、dwDeviceProtocol
第三組:
dwInterfaceClass、dwInterfaceSubClass、dwInterfaceProtocol
    如果注冊成功,將會在HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\鍵下出現 “第一組\第二組\第三組\注冊ID\DLL”這樣的建,鍵值為DLL驅動名稱。其中每組又是由三個值中間加下劃線組成。如果有一個值設置為USB_NO_INFO,則鍵名不包括該值。如果整個組中每個值都設置成USB_NO_INFO,則鍵名為Default。

據上面的例子,在我的系統下,將會生成如下鍵名:
    HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\4292_3\Default\0_0_0\USBTest\DLL = "MyUSBTest" (我的驅動程序為MyUSBTest.dll)
    當用戶插入USB設備時,它會讀取USB設備的描述符,根據描述符中的值在注冊表中查找驅動程序名稱。

    現在假設,我們要WinCE只支持USB鍵盤,另外我們自己實現一個USB鼠標驅動程序。如果不加注意,我們的USB鼠標驅動程序將不能被調用。原因正是在于這個查找USB設備驅動的過程。WINCE提供的USBHID驅動程序的注冊表信息是
    HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\3\Hid_Class\DLL = "USBHID.DLL"

    其中第三組信息只使用了dwInterfaceClass,而USB鍵盤和USB鼠標只有dwInterfaceProtocol不同。所以,一個3概括了所有的HID,當我們的USB鼠標插入系統后,將會調用USBHID.DLL驅動程序處理,但是它只包括鍵盤的驅動,沒有鼠標的驅動,所以鼠標不能使用。要想使得自定義的USB鼠標可以使用,則將第三組的值都設置上,如下:
    HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\3_1_1\Hid_Class\DLL = "USBHID.DLL"

    如此一來,當值為3_1_2的鼠標插入后,因為找不到對應的鍵值,將提示要求我們輸入USB鼠標的驅動。
 

 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 深圳市盈鵬飛科技有限公司
聯 系 人: 李希崗
電  話: 0086-13602511395
傳  真: 0755-82523175,82523176-819
地  址: 深圳市福田區福明路40號,雷圳大廈12A06
郵  編: 518033
主  頁:
 
該廠商相關技術文摘:
WINCE下如何添加CPL應用程序
Wince sqlite3移植
EAC-C925開機畫面實現手冊
英貝德推出單板機產品軟件升級解決方案(WinCE篇)
EP9315電路設計要點
Linux下創建和使用RamDisk的技巧
英貝德科技移植PPP大揭秘:PPP撥號在ARM2410平臺上的移植
AT91SAM9263在人機界面方面的應用
詳解WinCE下USB Host驅動開發(2)
WinCE驅動中設備中斷的處理
Linux內核學習之BogoMIPS值的計算
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網客服熱線:0755-86369299
版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

99久久国产福利自产拍| 日产乱码一二三区别免费影视| 琪琪电影网WWW888DVDC| 日产精品99久久久久久| 特大肥女BBWASS| 亚洲AV成人片无码网站网一区| 亚洲精品第一国产综合麻豆| 一区二区日韩视频| 97久久精品人人澡人人爽| 扒开女人P添大荫蒂| 风流少妇又紧又爽又丰满| 国产精品无码一区二区三区电影 | 国产成人无码A区视频在线观看| 国产欧美日韩视频免费| 精品国产一区二区三区久久影院| 久无码久无码AV无码| 欧美成人性生活视频| 日韩精品无码成人专区| 无码丰满人妻熟妇区| 亚洲国产成人精品青青草原 | 免费无码的AV片在线观看| 青青草无码伊人久久| 色窝窝无码一区二区三区成人网站| 无人区卡一卡二卡三乱码入口| 亚洲国产日韩A在线播放| 又黄又无遮挡AAAAA毛片| FREEⅩ性CHINESE中国| 大JI巴好深好爽又大又粗视频| 国产精品毛片无码一区二区蜜桃| 精品国产AV一区二区三区| 麻豆精品一卡2卡三卡4卡免费观 | 男女做高潮120秒试看| 人人做天天爱夜夜爽2020| 玩乡下黄花小处雏女| 亚洲AV永久无码一区二区三区| 一本色道无码不卡在线观看| AV怡红院一区二区三区| 寡妇好丰满奶好大| 好大好硬好深好爽想要AV| 久久午夜夜伦鲁鲁片免费无码影院 | 含羞草传媒每天免费三次看剧| 久久一本加勒比波多野结衣| 漂亮人妻去按摩被按中出| 玩弄JAPAN白嫩少妇HD| 亚洲国产精品久久久久秋霞小 | 亚洲欧美偷拍内射白浆| 777琪琪午夜理论电影网| 炖肉计(是今)海棠| 黑人巨大VIDEOS极度另类| 蜜桃AV秘 无码一区二区三欧| 日本人妻和黑人又粗又长又黄 | 中文字幕亚洲精品无码| 嘼皇PORONOⅤIDEOS极| 国精产品一线二线三线区别| 乱熟女高潮一区二区| 日本少妇春药特殊按摩3| 西西顶级艺术WWW日本超大胆| 野草高清视频免费| 爆乳上司JULIA中文字幕| 国产精品自在线拍国产手机版| 久久精品蜜芽亚洲国产AV| 青青草无码精品伊人久久7| 无人区码二码三码四码区别| 夜夜爽夜夜叫夜夜高潮| 宝贝你下面喷潮了| 国产亚洲综合欧美视频 | 精产国品一二三产品区别大吗 | 把腿张开老子臊烂你的漫画| 国产精品丝袜一区二区三区| 久久久久久精品免费免费WER| 秋霞鲁丝AV一区二区三区| 无遮挡粉嫩小泬久久久久久久动漫| 亚洲综合欧美色五月俺也去| 拔萝卜日本视频在线观看免费| 国产特级毛片AAAAAA高清| 乱肉怀孕又粗又大| 色悠久久久久综合网伊| 亚洲精品AⅤ无码精品| A三级三级成人网站在线视频| 国产精品毛片一区二区三区| 久久亚洲SM情趣捆绑调教| 日日噜噜夜夜狠狠视频| 亚洲精品国产美女久久久99 | 日产无人区一线二线三线| 亚洲AV永久无无码精品一区二区 | 熟妇人妻久久中文字幕老熟妇| 亚洲日韩国产精品第一页一区| IPHONE14欧美日韩版本| 国产午夜不卡AV免费| 免费久久人人爽人人爽AV| 天天想你免费看西瓜视频| 亚洲中文字幕日产乱码小说| 差差漫画在线观看登录页面弹窗 | 国偷自产一区二区免费| 男生和女生在一起差差差| 我的妺妺h伦浴室无码视频| 伊伊人成亚洲综合人网香| 嗯快点别停舒服好爽受不了了 | 69国产成人综合久久精品| 国产成人无码免费视频在线| 久久夜色精品国产嚕嚕亚洲AV| 色欲色香天天天综合无码| 亚洲色偷偷色噜噜狠狠99网| 成人毛片100部免费看| 精品第一国产综合精品AⅤ| 全免费A级毛片免费看网站| 亚洲VA综合VA国产产VA中| YSL万人千色T9| 国色天香卡一卡二乱码| 欧美一级一片内射欧美美妇3p| 亚洲AV无码成人精品区在线观看| 99久久国产综合精麻豆| 国产日韩未满十八禁止观看 | 性色A∨亚洲一区二区三区| 60老熟女多次高潮露脸视频| 国产女人好紧好爽| 欧美激情精品久久| 亚洲AV乱码久久精品蜜桃| av 成人 亚洲无码| 国内精品人妻无码久久久影院| 欧美虐SM另类残忍视频| 亚洲AV无码潮喷在线观看| WWW无套内射高清免费| 禁止18点击进入在线观看尤物| 日本JAPANESE 30成熟| 亚洲日本中文字幕乱码在线电影| 尺码最大的国产SUV| 久久久久久久精品无码Av少妇| 少妇人妻14页_麻花色| 永久免费AV无码网站性色AV| 国产高清自产拍AV在线| 妺妺自愿做我的性玩具| 性欧美ⅩXXXX极品少妇| GAY国产GV又粗又长又大| 护士长在办公室躁BD| 日本漂亮妈妈7在观有限中子| 亚洲日韩激情无码一区| 公交车强摁做开腿呻吟| 美女扒开屁股让男人桶GIF动态 | 久久99精品久久久久久久清纯| 日韩日韩日韩日韩 日韩 日韩| 亚洲综合网站精品一区二区| 国产V亚洲V欧美V专区| 免费A级毛片中文字幕| 性欧美长视频免费观看不卡| XXXXBBBB欧美残疾人| 精品无码国产自产拍在线观看蜜桃| 色噜噜狠狠狠狠色综合久一| 泳池里强摁做开腿呻吟漫画视频 | 成在人线AV无码免费看| 久久久一本精品99久久精品66| 翁熄小莹女博士高潮连连| 99精品人妻少妇一区二区| 黑人与中国娇小美女AV在线| 日本又黄又爽又无遮挡的视频 | 国产精品无码午夜福利| 欧美人成人精品视频在线观看| 亚洲国产成人一区二区精品区| 东京热人妻无码一区二区AV| 美女爆乳裸体WWW免费网站| 小雪尝禁果又粗又大的中国地图| YYYY1111少妇影院在线观| 久久久WWW影院人成_免费| 未成18不能看的视频| CHINESE国产XXXX实拍| 久久精品国产99精品国产202| 天天躁日日躁狠狠躁人妻| 99国精品午夜福利视频不卡| 精品国产一区二区亚洲人成毛片| 少妇特殊按摩高潮爽翻天| 2021国内精品久久久久精品| 极品白嫩的小少妇| 熟妇啊轻点灬大JI巴太粗| 97久久国产亚洲精品超碰热| 精品国产亚洲AV麻豆映画| 天堂中文最新版在线中文 | 国产无遮挡裸体免费视频在线观看| 日本高清在线观看视频WWW色 | 国产精品99久久免费观看| 亲子乱AⅤ一区二区三区| 一本大道在线无码一区| 国产日产欧产精品| 日韩欧美群交P片內射中文| 中无码人妻丰满熟妇啪啪| 精品国精品无码自拍自在线 | 日韩精品无码一区二区视频| 自拍偷区亚洲综合美利坚| 娇妻被领导抱进卧室| 他的舌头探入蜜源毛毛虫说说 | 1000部精品久久久久久久久| 精品久久久久久亚洲综合网 | 国产做出在线 | 传媒麻豆| 色偷偷888欧美精品久久久 | 日韩精品久久无码中文字幕| 专干日本熟妇人妻| 久精品夜色国产亚洲AV| 午夜香吻视频在线看免费| 吃了继兄开的药后我做的梦更长了| 男女啪啪摸下面喷水网站| 亚洲日韩AV成人无码|