如何修改wince(s3c2410)的MAC地址?

本文介绍了如何修改Windows CE(S3C2410)设备的MAC地址,通过添加注册表项并修改驱动源代码实现。详细步骤包括:添加特定注册表键值,读取注册表值更新MAC地址,以及编译驱动。同时提到,MAC地址通常由制造商编号和产品序列号组成,不可随意更改前3组,以保持唯一性。
摘要由CSDN通过智能技术生成

wince中的MAC地址是在驱动中写死的。如果不修改会造成一些网络方面的功能故障。比如不能互ping。

 

下面是我解决的方法:

 

1.添加如下注册表
[HKEY_LOCAL_MACHINE/Comm/CS8900/Parms]
"MAC12"=dword:3322
"MAC34"=dword:5544
"MAC56"=dword:0F66

 

2.修改CS8900驱动
在CS8900.c文件中,作如下修改:

  1. WORD iMAC3={0x3322,0x5544,0x0F66};  //添加MAC地址的原始数据
  2. //添加函数,读取注册表中的MAC地址的值
  3. void ReadRegsister()
  4. {
  5.     HKEY hkMAC = NULL;
  6.     DWORD MAC;
  7.     DWORD dwStatus, dwType, dwSize;
  8.         TCHAR gszBaseInstance[256] = _T("//Comm//CS8900//Parms");
  9.     // open the registry key and read our configuration
  10.     dwStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, gszBaseInstance, 0, KEY_ALL_ACCESS, &hkMAC);
  11.     dwType = REG_DWORD;
  12.     if(dwStatus == ERROR_SUCCESS && dwType == REG_DWORD) 
  13.         {
  14.         dwSize = sizeof(DWORD);
  15.         //下面读取失败的话那么就用初始值作为MAC地址
  16.         dwStatus = RegQueryValueEx(hkMAC, _T("MAC12"), NULL, &dwType, (LPBYTE) &MAC, &dwSize);
  17.         if (dwStatus == ERROR_SUCCESS)
  18.         {
  19.             iMAC[0]=MAC;
  20.         }
  21.         dwStatus = RegQueryValueEx(hkMAC, _T("MAC34"), NULL, &dwType, (LPBYTE) &MAC, &dwSize);  
  22.         if (dwStatus == ERROR_SUCCESS)
  23.         {
  24.             iMAC[1]=MAC;
  25.         }
  26.         dwStatus = RegQueryValueEx(hkMAC, _T("MAC56"), NULL, &dwType, (LPBYTE) &MAC, &dwSize);  
  27.         if (dwStatus == ERROR_SUCCESS)
  28.         {
  29.             iMAC[2]=MAC;
  30.         }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值