成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Windows Embedded中獲取設(shè)備ID

開(kāi)發(fā)
本文向您介紹WinCE下獲取設(shè)備ID的方法,包括設(shè)備ID在WinCE的定義、獲取以及緩存區(qū)等技術(shù)實(shí)現(xiàn)。

在WinCE下獲取設(shè)備ID(Device ID)并不困難,只要簡(jiǎn)單地調(diào)用KernelIoControl即可.不過(guò)至于能否獲得設(shè)備ID,并且獲得的ID屬于什么類(lèi)型,則關(guān)系到驅(qū)動(dòng)層的實(shí)現(xiàn).而設(shè)備ID的實(shí)現(xiàn),在不同的平臺(tái)有不同,比如在夏普的LH71404的開(kāi)發(fā)板中,設(shè)備ID位于platform.c中.不過(guò)本文目的不關(guān)注如何設(shè)置或編寫(xiě)設(shè)備ID,而僅僅是通過(guò)函數(shù)調(diào)用獲得該設(shè)備ID而已.

首先我們來(lái)看看設(shè)備ID在WinCE下的定義:

  1. typedef struct _DEVICE_ID {  
  2.     DWORD   dwSize;  
  3.     DWORD   dwPresetIDOffset;  
  4.     DWORD   dwPresetIDBytes;  
  5.     DWORD   dwPlatformIDOffset;  
  6.     DWORD   dwPlatformIDBytes;  
  7. } DEVICE_ID, *PDEVICE_ID; 

結(jié)構(gòu)清晰明了,而我們所要關(guān)注的僅僅是這兩個(gè)字段:dwPlatformIDOffset和dwPlatformIDBytes.
   
現(xiàn)在假設(shè)我們有一個(gè)平臺(tái),該平臺(tái)的設(shè)備ID為一個(gè)字符串:"MyDeviceId",那么我們可以通過(guò)下面一個(gè)簡(jiǎn)單的例子獲得該設(shè)備ID:

  1. char szBuf[MAX_PATH] = {0};  
  2.    DEVICE_ID devID = {0};  
  3.    GetDeviceID((BYTE *)szBuf,MAX_PATH,&devID);  
  4.    char szDeviceID[MAX_PATH] = {0};  
  5.    strcpy(szDeviceID,szBuf + devID.dwPlatformIDOffset); 

此時(shí)szDeviceID中存儲(chǔ)的字符串就是"MyDeviceId".
   
代碼中的GetDeviceID是自己寫(xiě)的一個(gè)獲取ID函數(shù),該代碼如下:

  1. DWORD GetDeviceID(BYTE *pOutBuf,DWORD dwBufSize,DEVICE_ID *pDeviceID)  
  2.         {  
  3.             DWORD dwRead = 0;  
  4.             if(KernelIoControl(IOCTL_HAL_GET_DEVICEID, NULL, 0, pOutBuf, dwBufSize, &dwRead) == FALSE)  
  5.             {  
  6.                 return 0;  
  7.             }  
  8.           
  9.             pDeviceID = (PDEVICE_ID)pOutBuf;  
  10.           
  11.             return dwRead;  
  12.         } 

pOutBuf是傳入的存儲(chǔ)緩沖區(qū),dwBufSize是緩沖區(qū)大小,pDeviceID是接受設(shè)備ID的結(jié)構(gòu)信息,函數(shù)返回值是讀取的字節(jié)數(shù),當(dāng)為0的時(shí)候,很可能是函數(shù)讀設(shè)備ID失敗.調(diào)用方法很簡(jiǎn)單,可參考上文的例子.
 
代碼中出現(xiàn)的IOCTL_HAL_GET_DEVICEID是WinCE下定義的宏,專(zhuān)注于獲取設(shè)備ID,該宏的定義如下:

  1. #define IOCTL_HAL_GET_DEVICEID      CTL_CODE(FILE_DEVICE_HAL, 21, METHOD_BUFFERED, FILE_ANY_ACCESS) 

最后需要說(shuō)的是,要使該段代碼工作正常,尚且需要包含該頭文件:Pkfuncs.h。

 

【編輯推薦】

  1. WinCE編譯過(guò)程的四個(gè)階段
  2. WinCE中觸摸屏驅(qū)動(dòng)開(kāi)發(fā)詳解
  3. 基于WinCE的液位遙測(cè)系統(tǒng)軟件設(shè)計(jì)
  4. WinCE中串口驅(qū)動(dòng)及接口函數(shù)介紹
  5. WinCE USB驅(qū)動(dòng)開(kāi)發(fā)經(jīng)驗(yàn)談
責(zé)任編輯:佚名 來(lái)源: 網(wǎng)絡(luò)轉(zhuǎn)載
相關(guān)推薦

2009-07-16 15:46:09

Windows Emb

2009-04-03 13:09:12

Windows Emb

2009-03-30 15:52:24

Windows Emb

2009-02-17 14:22:40

Windows Emb

2011-01-10 14:08:50

Windows Emb用戶(hù)體驗(yàn)移動(dòng)終端

2009-10-14 14:33:47

EmbeddedWindows 7OEM

2009-07-16 15:27:13

Windows Emb

2009-07-16 14:22:02

Windows Emb

2009-12-10 09:19:28

Windows 7嵌入式平臺(tái)

2013-06-04 15:20:52

Windows EmbWindows 8.1

2011-04-02 17:21:40

Virtual PCWindows Emb嵌入式開(kāi)發(fā)

2009-11-04 16:36:22

Windows Emb解決方案

2009-10-28 09:22:15

2009-03-30 15:52:24

Windows Emb

2009-11-13 09:44:44

Driver ExtrWindows Emb

2009-07-16 14:28:08

Windows EmbIE安全限制

2009-09-03 17:51:34

C#獲取設(shè)備的ID

2024-03-14 10:22:46

Electron設(shè)備IDNode.js 模塊

2010-12-16 09:31:08

Windows Emb

2010-05-17 09:48:09

Windows EmbWindows 7
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品免费国产一区二区三区四区介绍 | 成年人网站在线观看视频 | 国产免费又黄又爽又刺激蜜月al | 欧美精品久久久 | 国产精品a久久久久 | caoporn国产精品免费公开 | 精品一区二区电影 | 欧美一级视频在线观看 | 精品久久久久久久久久久 | 国产激情 | h在线看 | 四虎永久 | 免费av直接看 | 男女视频在线免费观看 | www四虎com| 在线免费观看日本 | 国产精品久久久久久久久久免费看 | 欧美激情国产日韩精品一区18 | 国产激情 | 91精品福利 | 中文字幕成人在线 | 成在线人视频免费视频 | 中文字幕日韩欧美 | 伊人春色在线 | 成人精品在线观看 | 精品一区二区三区在线观看 | 99视频在线免费观看 | 日本精品视频在线 | 这里精品| 国产精品视频在线播放 | av黄色在线播放 | 日日骚视频 | 免费观看一级特黄欧美大片 | 懂色av一区二区三区在线播放 | 日韩成人一区二区 | 欧美三级网站 | www.av在线 | 福利一区二区 | 亚洲日本视频 | 精品久久国产老人久久综合 | 成人国产精品久久久 |