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

在Windows Embedded中獲取設備ID

開發
本文向您介紹WinCE下獲取設備ID的方法,包括設備ID在WinCE的定義、獲取以及緩存區等技術實現。

在WinCE下獲取設備ID(Device ID)并不困難,只要簡單地調用KernelIoControl即可.不過至于能否獲得設備ID,并且獲得的ID屬于什么類型,則關系到驅動層的實現.而設備ID的實現,在不同的平臺有不同,比如在夏普的LH71404的開發板中,設備ID位于platform.c中.不過本文目的不關注如何設置或編寫設備ID,而僅僅是通過函數調用獲得該設備ID而已.

首先我們來看看設備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; 

結構清晰明了,而我們所要關注的僅僅是這兩個字段:dwPlatformIDOffset和dwPlatformIDBytes.
   
現在假設我們有一個平臺,該平臺的設備ID為一個字符串:"MyDeviceId",那么我們可以通過下面一個簡單的例子獲得該設備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); 

此時szDeviceID中存儲的字符串就是"MyDeviceId".
   
代碼中的GetDeviceID是自己寫的一個獲取ID函數,該代碼如下:

  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是傳入的存儲緩沖區,dwBufSize是緩沖區大小,pDeviceID是接受設備ID的結構信息,函數返回值是讀取的字節數,當為0的時候,很可能是函數讀設備ID失敗.調用方法很簡單,可參考上文的例子.
 
代碼中出現的IOCTL_HAL_GET_DEVICEID是WinCE下定義的宏,專注于獲取設備ID,該宏的定義如下:

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

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

 

【編輯推薦】

  1. WinCE編譯過程的四個階段
  2. WinCE中觸摸屏驅動開發詳解
  3. 基于WinCE的液位遙測系統軟件設計
  4. WinCE中串口驅動及接口函數介紹
  5. WinCE USB驅動開發經驗談
責任編輯:佚名 來源: 網絡轉載
相關推薦

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用戶體驗移動終端

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嵌入式平臺

2013-06-04 15:20:52

Windows EmbWindows 8.1

2011-04-02 17:21:40

Virtual PCWindows Emb嵌入式開發

2009-10-28 09:22:15

2009-11-04 16:36:22

Windows Emb解決方案

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安全限制

2024-03-14 10:22:46

Electron設備IDNode.js 模塊

2009-09-03 17:51:34

C#獲取設備的ID

2010-12-16 09:31:08

Windows Emb

2010-05-17 09:48:09

Windows EmbWindows 7
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品入口麻豆www | 日韩视频在线一区 | jav成人av免费播放 | 午夜小视频在线播放 | 波多野结衣中文视频 | 中文字幕久久精品 | 日韩在线观看网站 | 黄色精品 | 综合久久亚洲 | 日韩精品在线看 | 91精品无人区卡一卡二卡三 | 一区二区国产精品 | 久久精选 | 日本成人中文字幕在线观看 | 日韩一区二区免费视频 | 国产一级片网站 | 国产精品69毛片高清亚洲 | 欧美电影免费观看高清 | 午夜欧美一区二区三区在线播放 | 天天操天天摸天天干 | 夜夜爽99久久国产综合精品女不卡 | 美女日批免费视频 | 日韩av.com | 久久99精品视频 | 99热这里都是精品 | 亚洲精选一区 | 久久久www成人免费精品 | 日本三级网| 在线成人免费观看 | 久久精品亚洲 | 久久亚洲一区二区 | 亚洲成av人片在线观看 | 欧美精品v国产精品v日韩精品 | 999视频在线播放 | 操网站 | 在线观看成人免费视频 | 日韩欧美一二三区 | 久在线 | 亚洲麻豆 | 精区3d动漫一品二品精区 | 久久综合九色综合欧美狠狠 |