亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mac地址問題.txt

?? 這是我在網上找到的可以實現在WINCE42中MAC地址在注冊表修改的資料!很有用途!在此感謝作者!僅供學習!
?? TXT
字號:


wince中的MAC地址是在驅動中寫死的。如果不修改會造成一些網絡方面的功能故障。比如不能互ping

 

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

 

2.修改CS8900驅動
在CS8900.c文件中,作如下修改:


DWORD iMAC[3]={0x3322,0x5544,0x0F66};  //添加MAC地址的原始數據 
//添加函數,讀取注冊表中的MAC地址的值 
void ReadRegsister() 
{ 
    HKEY hkMAC = NULL; 
    DWORD MAC; 
    DWORD dwStatus, dwType, dwSize; 
        TCHAR gszBaseInstance[256] = _T("\\Comm\\CS8900\\Parms"); 
    // open the registry key and read our configuration 
    dwStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, gszBaseInstance, 0, KEY_ALL_ACCESS, &hkMAC); 
    dwType = REG_DWORD; 

    if(dwStatus == ERROR_SUCCESS && dwType == REG_DWORD)  
        { 
        dwSize = sizeof(DWORD); 
        //下面讀取失敗的話那么就用初始值作為MAC地址 
        dwStatus = RegQueryValueEx(hkMAC, _T("MAC12"), NULL, &dwType, (LPBYTE) &MAC, &dwSize); 
        if (dwStatus == ERROR_SUCCESS) 
        { 
            iMAC[0]=MAC; 
        } 
        dwStatus = RegQueryValueEx(hkMAC, _T("MAC34"), NULL, &dwType, (LPBYTE) &MAC, &dwSize);   
        if (dwStatus == ERROR_SUCCESS) 
        { 
            iMAC[1]=MAC; 
        } 
        dwStatus = RegQueryValueEx(hkMAC, _T("MAC56"), NULL, &dwType, (LPBYTE) &MAC, &dwSize);   
        if (dwStatus == ERROR_SUCCESS) 
        { 
            iMAC[2]=MAC; 
        } 
    } 

} 

int initCS() 
{    
    CS8900WriteRegister(PKTPG_LINE_CTL, LINE_CTL_10_BASE_T); 
    CS8900WriteRegister(PKTPG_RX_CFG, RX_CFG_RX_OK_I_E); 
    CS8900WriteRegister(PKTPG_RX_CTL,RX_CTL_RX_OK_A | RX_CTL_IND_ADDR_A |RX_CTL_BROADCAST_A); 
    CS8900WriteRegister(PKTPG_TX_CFG, 0);  
    CS8900WriteRegister(PKTPG_BUF_CFG, 0);  
     
    //modify by constantine  
    ReadRegsister(); 
    CS8900WriteRegister(PKTPG_INDIVISUAL_ADDR + 0, iMAC[0]); 
    CS8900WriteRegister(PKTPG_INDIVISUAL_ADDR + 2, iMAC[1]); 
    CS8900WriteRegister(PKTPG_INDIVISUAL_ADDR + 4, iMAC[2]); 

    initIrq(); 
    return TRUE; 
} 

BOOLEAN CS8900ReadEthernetAddress( 
    IN PCS8900_ADAPTER Adapter 
) 
{ 
//modify by constantine 
    //Adapter->PermanentAddress[0] = 0x22; 
    //Adapter->PermanentAddress[1] = 0x33; 
    //Adapter->PermanentAddress[2] = 0x44; 
    //Adapter->PermanentAddress[3] = 0x55; 
    //Adapter->PermanentAddress[4] = 0x66; 
    //Adapter->PermanentAddress[5] = 0x0F; 
     
    Adapter->PermanentAddress[0] = iMAC[0]& 0x00FF; 
    Adapter->PermanentAddress[1] = iMAC[0]>>8; 
    Adapter->PermanentAddress[2] = iMAC[1]& 0x00FF; 
    Adapter->PermanentAddress[3] = iMAC[1]>>8; 
    Adapter->PermanentAddress[4] = iMAC[2]& 0x00FF; 
    Adapter->PermanentAddress[5] = iMAC[2]>>8;  
//end     
    RETAILMSG(1, 
        (TEXT("CS8900: PermanentAddress [ %02x-%02x-%02x-%02x-%02x-%02x ]\r\n"), 
            Adapter->PermanentAddress[0], 
            Adapter->PermanentAddress[1], 
            Adapter->PermanentAddress[2], 
            Adapter->PermanentAddress[3], 
            Adapter->PermanentAddress[4], 
            Adapter->PermanentAddress[5])); 

    // 
    // Use the burned in address as the station address, unless the 
    // registry specified an override value. 
    // 
    if ((Adapter->StationAddress[0] == 0x00) & 
        (Adapter->StationAddress[1] == 0x00) & 
        (Adapter->StationAddress[2] == 0x00) & 
        (Adapter->StationAddress[3] == 0x00) & 
        (Adapter->StationAddress[4] == 0x00) & 
        (Adapter->StationAddress[5] == 0x00) 
        ) 
    { 
        RETAILMSG(1, (TEXT("CS8900: StationAddress Modified!...\r\n"))); 
        Adapter->StationAddress[0] = Adapter->PermanentAddress[0]; 
        Adapter->StationAddress[1] = Adapter->PermanentAddress[1]; 
        Adapter->StationAddress[2] = Adapter->PermanentAddress[2]; 
        Adapter->StationAddress[3] = Adapter->PermanentAddress[3]; 
        Adapter->StationAddress[4] = Adapter->PermanentAddress[4]; 
        Adapter->StationAddress[5] = Adapter->PermanentAddress[5]; 
    } 

    return(TRUE); 
}
 

編譯后就可以了,這樣就讓驅動是從注冊表中讀取MAC地址了。那么接下來我們就有辦法修改這個MAC地址了。

 

3.寫代碼修改注冊表

下面是關鍵代碼:

 

void CWINCEMACDlg::ReadRegsister() 
{ 
    HKEY hkMAC = NULL; 
    DWORD MAC=0; 
    DWORD dwStatus, dwType, dwSize; 
    TCHAR gszBaseInstance[256] = _T("\\Comm\\CS8900\\Parms"); 
    // open the registry key and read our configuration 
    dwStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, gszBaseInstance, 0, KEY_ALL_ACCESS, &hkMAC); 
    dwType = REG_DWORD; 

    if(dwStatus == ERROR_SUCCESS && dwType == REG_DWORD)  
    { 
        dwSize = sizeof(DWORD); 
        dwStatus = RegQueryValueEx(hkMAC, _T("MAC12"), NULL, &dwType, (LPBYTE) &MAC, &dwSize); 
        if (dwStatus == ERROR_SUCCESS) 
        { 
            m_EDT0.Format(_T("%02x"),(MAC & 0x00ff)); 
            m_EDT1.Format(_T("%02x"),(MAC >> 8)); 
        } 
        dwStatus = RegQueryValueEx(hkMAC, _T("MAC34"), NULL, &dwType, (LPBYTE) &MAC, &dwSize); 
        if (dwStatus == ERROR_SUCCESS) 
        { 
            m_EDT2.Format(_T("%02x"),(MAC & 0x00ff)); 
            m_EDT3.Format(_T("%02x"),(MAC >> 8)); 
        } 
        dwStatus = RegQueryValueEx(hkMAC, _T("MAC56"), NULL, &dwType, (LPBYTE) &MAC, &dwSize); 
        if (dwStatus == ERROR_SUCCESS) 
        { 
            m_EDT4.Format(_T("%02x"),(MAC & 0x00ff)); 
            m_EDT5.Format(_T("%02x"),(MAC >> 8)); 
        } 
    } 
    RegCloseKey( hkMAC ); 
    UpdateData(FALSE); 
} 


void CWINCEMACDlg::WriteRegsister() 
{ 
    HKEY hkMAC = NULL; 
    DWORD dwStatus, dwSize; 
    TCHAR gszBaseInstance[256] = _T("\\Comm\\CS8900\\Parms"); 
    dwStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, gszBaseInstance, 0, KEY_ALL_ACCESS, &hkMAC); 

    if(dwStatus == ERROR_SUCCESS )  
    { 
        dwSize = sizeof(DWORD); 
        int value; 
        TCHAR num[4]={0}; 
        BYTE * lpBuffer; 
        UpdateData(TRUE); 
                value=0; 
        wsprintf(num,L"0x%s", m_EDT1.GetBuffer(0)); 
        value += _ttoi(num)<<8; 
        wsprintf(num,L"0x%s", m_EDT0.GetBuffer(0)); 
        value += _ttoi(num); 
        lpBuffer = (BYTE *)&value; 
        RegSetValueEx(hkMAC, _T("MAC12"), 0, REG_DWORD, lpBuffer,dwSize); 

        value=0; 
        wsprintf(num,L"0x%s", m_EDT3.GetBuffer(0)); 
        value += _ttoi(num)<<8; 
        wsprintf(num,L"0x%s", m_EDT2.GetBuffer(0)); 
        value += _ttoi(num); 
        lpBuffer = (BYTE *)&value; 
        RegSetValueEx(hkMAC, _T("MAC34"), 0, REG_DWORD, lpBuffer,dwSize); 

        value=0; 
        wsprintf(num,L"0x%s", m_EDT5.GetBuffer(0)); 
        value += _ttoi(num)<<8; 
        wsprintf(num,L"0x%s", m_EDT4.GetBuffer(0)); 
        value += _ttoi(num); 
        lpBuffer = (BYTE *)&value; 
        RegSetValueEx(hkMAC, _T("MAC56"), 0, REG_DWORD, lpBuffer,dwSize); 
    } 
    RegCloseKey( hkMAC ); 
}
 

4.如果有外接EEPROM之類的話,那么一般是寫在EEPROM里面的,而不是寫注冊表。如果這種實現方式必須采用Hive方式的注冊表。不然也是保存不了的。

5.特別說明
MAC地址一般由12個16進制數字組成,每2個為一組,前面3組代表網絡硬件制造商的編號,這個一般是由IEEE來分配。
后面3組代表該制造商所制造的某個網絡產品的序列號。這樣也就為什么我們說MAC地址是唯一的了(當然前提是你沒有自己修改過)。
wince驅動由于比較特殊,6組值要寫入3個IO里面一個IO只能寫入16個字節,為了方便我就不按照正常定義為兩個部分,
而是簡單定義成3個部分,這樣容易寫代碼。
必須說明的是MAC地址前3組值不是能隨便更改的,我們一般就改動后3組就行了。非要改就要找一個制造商的編號才行。
另外如果不修改MAC地址不組網是沒有問題的,但是如果組網就會有一些小問題,比如ping,wince之間無法相互ping。當然還有別的。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情综合网激情| 久久一区二区三区四区| 99久久精品情趣| 天堂在线一区二区| 亚洲一区二区三区四区的| 亚洲免费视频中文字幕| 亚洲女爱视频在线| 亚洲一区国产视频| 日韩精品一二三区| 韩国欧美国产1区| 国产精品一区在线观看乱码| 欧美电影免费观看高清完整版在 | 成人午夜电影网站| 国产激情一区二区三区| 国产成人免费视频网站| 成人在线一区二区三区| 97se亚洲国产综合自在线不卡| 不卡一区二区在线| 91黄色激情网站| 欧美自拍偷拍午夜视频| 宅男在线国产精品| 国产日韩欧美在线一区| 亚洲色图欧美偷拍| 全部av―极品视觉盛宴亚洲| 极品销魂美女一区二区三区| 成人视屏免费看| 欧美日本在线看| 久久女同性恋中文字幕| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 亚洲欧美电影院| 免费在线一区观看| 成人午夜激情在线| 69av一区二区三区| 中文字幕高清不卡| 亚洲二区视频在线| 丰满少妇在线播放bd日韩电影| 日本伦理一区二区| 久久久久久黄色| 亚洲制服丝袜av| 国产高清久久久| 欧美色网一区二区| 国产精品情趣视频| 日韩高清欧美激情| 色综合久久中文字幕综合网| 日韩丝袜情趣美女图片| 亚洲欧美乱综合| 国产精品综合二区| 欧美一级二级在线观看| 一区二区三区高清在线| 国产乱人伦精品一区二区在线观看| 91国产丝袜在线播放| 26uuu国产一区二区三区| 亚洲成av人片在线| 91麻豆免费看片| 日本一区二区视频在线观看| 日本va欧美va瓶| 欧美日韩视频在线第一区| 亚洲欧洲另类国产综合| 国产精品综合一区二区| 精品国产一二三| 午夜精品视频在线观看| 色久综合一二码| 1024成人网| 成人黄色小视频| 国产欧美日韩精品在线| 国产精品一区二区无线| 日韩精品中文字幕在线一区| 日韩1区2区3区| 欧美美女视频在线观看| 午夜精品一区在线观看| 欧美日韩中文一区| 日韩精品免费专区| 在线播放日韩导航| 日韩国产成人精品| 日韩欧美一区在线观看| 人妖欧美一区二区| 欧美一三区三区四区免费在线看 | 国产农村妇女精品| 国产成人免费在线视频| 久久理论电影网| 国产乱码精品1区2区3区| 26uuu精品一区二区在线观看| 久久国产精品第一页| 欧美变态tickling挠脚心| 韩国一区二区在线观看| 国产亚洲综合在线| 国产成a人无v码亚洲福利| 中文字幕av免费专区久久| 91香蕉视频在线| 亚洲一级片在线观看| 91精品国产品国语在线不卡| 蜜桃av一区二区三区电影| 亚洲精品在线网站| 成人免费视频app| 亚洲在线观看免费| 日韩亚洲电影在线| 国产99久久精品| 亚洲精品国产一区二区精华液 | 中文字幕亚洲一区二区va在线| 北条麻妃一区二区三区| 亚洲三级在线免费观看| 欧美日韩一二三| 久久av中文字幕片| 国产精品久久久久aaaa樱花 | 日韩一区二区三区电影| 久久se精品一区二区| 中文字幕亚洲一区二区av在线| 欧洲一区二区三区免费视频| 麻豆成人91精品二区三区| 国产人妖乱国产精品人妖| 欧洲中文字幕精品| 国产精品自在在线| 亚洲一区二区在线观看视频| 精品少妇一区二区三区在线播放| 成人av在线播放网址| 秋霞电影网一区二区| 国产精品国产三级国产| 欧美一区二区视频免费观看| 99久久国产免费看| 黄页视频在线91| 亚洲成av人在线观看| 国产精品久久久久永久免费观看 | 日韩av一区二区三区| 国产精品福利一区| 欧美大片在线观看一区二区| 91免费看视频| 国产成人亚洲综合a∨婷婷图片| 亚洲国产成人av网| 国产精品福利影院| 久久蜜桃av一区二区天堂| 555www色欧美视频| 91麻豆国产自产在线观看| 国产ts人妖一区二区| 老色鬼精品视频在线观看播放| 亚洲主播在线播放| 亚洲女人的天堂| 国产精品女主播av| 国产三级精品视频| 久久综合色播五月| 欧美电视剧免费观看| 在线综合视频播放| 欧美区视频在线观看| 色一区在线观看| 91亚洲精品一区二区乱码| 国产成人免费av在线| 国产精品综合网| 极品少妇xxxx精品少妇偷拍| 麻豆精品视频在线观看视频| 日韩和的一区二区| 日韩av网站免费在线| 五月开心婷婷久久| 午夜精品久久久久久久99樱桃| 一区二区三区四区在线播放 | 久久婷婷久久一区二区三区| 日韩欧美一区二区在线视频| 91精品国产丝袜白色高跟鞋| 欧美日韩午夜在线视频| 欧美精品在线观看播放| 欧美一区二区三区的| 日韩精品综合一本久道在线视频| 欧美mv日韩mv国产| 久久综合九色欧美综合狠狠 | 色悠悠久久综合| 91久久精品网| 欧美精品电影在线播放| 欧美一级电影网站| 久久这里都是精品| 国产精品色哟哟| 亚洲欧美中日韩| 五月天网站亚洲| 精品亚洲aⅴ乱码一区二区三区| 国产精品18久久久久| 99久久婷婷国产综合精品电影| 色综合一区二区| 欧美一级片在线看| 国产日韩精品视频一区| 亚洲理论在线观看| 男男视频亚洲欧美| 成人午夜视频福利| 欧美日韩亚州综合| 久久久久久久综合狠狠综合| 亚洲欧美日韩中文字幕一区二区三区| 依依成人综合视频| 国产在线视频一区二区三区| a4yy欧美一区二区三区| 欧美日韩国产乱码电影| 久久嫩草精品久久久精品| 一区二区三区电影在线播| 精品午夜久久福利影院| 色噜噜狠狠色综合中国| 欧美精品一区二区三区四区| 日韩一区和二区| 亚洲va国产天堂va久久en| 日韩av电影免费观看高清完整版| 久久99久久久久| 91免费视频大全| 2023国产精品视频| 亚洲欧美成aⅴ人在线观看| 日本美女一区二区三区视频| 成人性生交大片|