无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频

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

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

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

動態(tài)方式如下:
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函數(shù)指針調(diào)用這些函數(shù),最后記得要FreeLibrary。

靜態(tài)方式:
在.cpp源文件中加入
#pragma   comment(lib,"usbd.lib")
并在source文件的TARGETLIBS變量中加入$(_SYSGENOAKROOT)\lib\$(_CPUINDPATH)\usbd.lib
如此一來,就可以直接使用這兩個函數(shù)了。
1) BOOL RegisterClientDriverID(LPCWSTR szUniqueDriverId)
該函數(shù)注冊USB Host驅(qū)動程序的ID。
2) BOOL RegisterClientSettings(LPCWSTR szDriverLibFile, LPCWSTR szUniqueDriverId, LPCWSTR erved, LPCUSB_DRIVER_SETTINGS lpDriverSettings)
該函數(shù)負(fù)責(zé)注冊驅(qū)動程序的信息。
szDriverLibFile 設(shè)置為USBInstallDriver函數(shù)傳入的DLL驅(qū)動程序名稱。
szUniqueDriverId 設(shè)置為調(diào)用RegisterClientDriverID注冊的驅(qū)動程序ID。
erved 設(shè)置為NULL
lpDriverSettings 該參數(shù)是一個USB_DRIVER_SETTINGS結(jié)構(gòu)體。其聲明如下:
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為結(jié)構(gòu)體大小,其他項對應(yīng)USB描述符。
    其中除Count外的各字段,如果不設(shè)置具體的值,可以設(shè)置為USB_NO_INFO。
這個結(jié)構(gòu)體中的信息講反應(yīng)到注冊表的HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\鍵下,用于在USB設(shè)備插入時,查找USB驅(qū)動。下面以一個例子說明:
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中,將設(shè)置信息分為了三組,每組3個值,
第一組:
dwVendorId、dwProductId、dwReleaseNumber
第二組:
dwDeviceClass、dwDeviceSubClass、dwDeviceProtocol
第三組:
dwInterfaceClass、dwInterfaceSubClass、dwInterfaceProtocol
    如果注冊成功,將會在HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\鍵下出現(xiàn) “第一組\第二組\第三組\注冊ID\DLL”這樣的建,鍵值為DLL驅(qū)動名稱。其中每組又是由三個值中間加下劃線組成。如果有一個值設(shè)置為USB_NO_INFO,則鍵名不包括該值。如果整個組中每個值都設(shè)置成USB_NO_INFO,則鍵名為Default。

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

    現(xiàn)在假設(shè),我們要WinCE只支持USB鍵盤,另外我們自己實(shí)現(xiàn)一個USB鼠標(biāo)驅(qū)動程序。如果不加注意,我們的USB鼠標(biāo)驅(qū)動程序?qū)⒉荒鼙徽{(diào)用。原因正是在于這個查找USB設(shè)備驅(qū)動的過程。WINCE提供的USBHID驅(qū)動程序的注冊表信息是
    HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\3\Hid_Class\DLL = "USBHID.DLL"

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

    如此一來,當(dāng)值為3_1_2的鼠標(biāo)插入后,因為找不到對應(yīng)的鍵值,將提示要求我們輸入USB鼠標(biāo)的驅(qū)動。
 

 

狀 態(tài): 離線

公司簡介
產(chǎn)品目錄

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

關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網(wǎng)客服熱線:0755-86369299
版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved

无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频
精品欠久久久中文字幕加勒比| 免费观看在线综合| 电影天堂国产精品| 国产精品亚洲综合色区韩国| 在线免费观看亚洲| 好看的av在线不卡观看| 亚洲一级特黄| 国产拍在线视频| 卡一精品卡二卡三网站乱码| 国产视频一区二区在线播放| 视频一区二区不卡| 亚洲专区视频| 玖玖玖国产精品| 美女网站久久| 在线免费观看亚洲| 日韩国产欧美在线视频| 三级在线观看一区二区| 免费成人av在线播放| 免费在线视频一区| 人人精品久久| 国产日产高清欧美一区二区三区| 日本成人在线网站| 欧美在线不卡| 日韩高清欧美激情| 久久69成人| 超碰在线99| 国产在线不卡| 在线亚洲激情| 中文字幕一区二区av| 欧美中文高清| 精品美女久久| 天堂资源在线亚洲| 亚洲欧美一区在线| 亚洲免费专区| 人人爱人人干婷婷丁香亚洲| 日本麻豆一区二区三区视频| 国产精品第一国产精品| 精品三级在线| 国产精品av一区二区| 免费成人性网站| 国产另类在线| 99久久精品费精品国产| 亚洲欧美日韩一区在线观看| 免费观看在线综合色| 国产日产一区| 久久婷婷久久| 日本不卡视频一二三区| 欧美xxxx中国| 深夜福利一区| 三级在线看中文字幕完整版| 亚洲一区二区免费看| 国产欧美日韩免费观看| 精品丝袜久久| 国产模特精品视频久久久久| 国产精品一线| 日韩视频一区| 日韩欧美自拍| 日韩国产一二三区| 日韩电影免费网站| 天海翼精品一区二区三区| 久久精品国产免费| 在线亚洲欧美| 国产成人黄色| 欧美一区二区三区免费看| 中文字幕人成乱码在线观看| 蜜臀av亚洲一区中文字幕| 欧美国产美女| 日韩美女精品| 亚洲午夜av| а√天堂8资源在线| 日本一区二区三区视频在线看| 久久视频一区| 国产精品一区二区三区美女| 国产一区久久| 亚洲三级欧美| 精品三级在线| 国产精品亚洲一区二区在线观看 | 一区二区三区国产盗摄| 日韩一区二区三区精品| 女人天堂亚洲aⅴ在线观看| 国产精品2023| 91精品国产经典在线观看| 另类激情亚洲| 91精品99| 激情欧美亚洲| 电影亚洲精品噜噜在线观看| 久久av网站| 日本视频在线一区| 亚洲欧洲免费| 在线观看视频免费一区二区三区| 九一精品国产| 私拍精品福利视频在线一区| 高清一区二区| 国产videos久久| 国产成人a视频高清在线观看| 国产精品视频首页| 日韩高清一区二区| 在线国产日韩| 日韩在线视频一区二区三区| 蜜桃久久av一区| 香蕉久久国产| 视频一区日韩| 青青伊人久久| 另类欧美日韩国产在线| 精品一区二区三区的国产在线观看| 久久99久久久精品欧美| 国产精品日本一区二区不卡视频| 日本成人中文字幕在线视频| 蜜桃久久精品一区二区| 日韩国产一二三区| 免费视频一区二区三区在线观看| 麻豆国产精品一区二区三区 | 日韩欧美一区免费| 国产精品久久久久av电视剧| 电影天堂国产精品| 免费欧美一区| 亚洲最新av| 国产日本久久| 日韩电影免费在线观看| 日韩欧美一区二区三区免费看| 日韩免费一区| 亚洲一区区二区| 一区二区国产在线观看| 国产丝袜一区| 色一区二区三区| 欧美特黄一区| 国产精品一区二区精品视频观看| 免费福利视频一区二区三区| 欧美午夜精彩| 日韩欧美美女在线观看| 久久精品亚洲| 伊人成人在线视频| 国产欧美日韩精品一区二区免费 | 9国产精品视频| 国产欧美激情| 91精品精品| 日韩三级久久| 久久亚洲在线| 日韩精品福利一区二区三区| 国产成人精品999在线观看| 影院欧美亚洲| 国产videos久久| 视频一区二区三区入口| 精品久久久网| 首页国产欧美日韩丝袜| 在线亚洲人成| 欧美日本久久| 性欧美长视频| 欧美天堂视频| 国产精品一线| 亚洲欧美视频一区二区三区| 久久精品av麻豆的观看方式| 久久免费高清| 国产精品17p| 日韩一区二区三区精品| 免费毛片在线不卡| 91亚洲成人| 国产精品久久久免费| 日韩精品一二三| 美女网站视频一区| 国产精品第一国产精品| 视频一区中文字幕精品| 欧美另类专区| 久久国产电影| 在线手机中文字幕| 国产麻豆精品久久| 免费精品视频最新在线| 久久久一本精品| 成人国产精品| 精品一区二区三区在线观看视频| 综合国产精品| 美女精品一区| 亚洲主播在线| 激情欧美国产欧美| 欧美不卡高清一区二区三区| 成人在线黄色| 精品视频在线你懂得| 国产亚洲精品美女久久| 人人爱人人干婷婷丁香亚洲| 亚洲va久久久噜噜噜久久| 99国产精品私拍| 久久久久久美女精品| 成人片免费看| 日韩精品欧美激情一区二区| 在线人成日本视频| 国产一区二区三区不卡视频网站 | 91福利精品在线观看| 蜜乳av另类精品一区二区| 国产精品91一区二区三区| 韩国三级一区| 91精品国产调教在线观看| 久久久久一区| 99成人在线| 中文字幕一区二区av| 日本亚洲不卡| 国产日本久久| 国产精品久久久久久久免费观看| 国产专区精品| 日韩精品免费一区二区在线观看| 国产综合视频|