<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > HIVE注冊表恢復出廠(chǎng)設置

HIVE注冊表恢復出廠(chǎng)設置

作者: 時(shí)間:2011-02-24 來(lái)源:網(wǎng)絡(luò ) 收藏

Hive組件具有保存注冊表功能。 就是使用了hive, 注冊表修改后可以保存。

有時(shí)候也碰上想恢復注冊表的情形。 我在調試一個(gè)沒(méi)有lcd的設備, 我使用pocket controller工具遠程抓屏, 如果想每次都能使用這個(gè)工具,就會(huì )需要恢復注冊表出廠(chǎng)設置。(注冊表不是引起這個(gè)的原因,但卻是個(gè)解決辦法, 原因具體就不說(shuō)了)。


如何恢復注冊表?幫助里面搜索一下IOCTL_HAL_GET_HIVE_CLEAN_FLAG關(guān)鍵字。Filesys.exe啟動(dòng)時(shí)候會(huì )使用這個(gè)命令詢(xún)問(wèn)oem是否刪除重建注冊表,返回TRUE就是執行刪除了。


Eboot可 以傳遞參數給nk,其實(shí)也不會(huì )多復雜, 雙方明確參數所在區域和參數包含意義就可以傳遞了。比如我的系統里面,0xA0020800就是參數區域。 我在 eboot里面菜單里面增加一個(gè)bool參數bHiveClean的設置命令, 然后將這個(gè)參數告訴內核。 Oal在OEMInit()里面也訪(fǎng)問(wèn)這個(gè)區 域, 獲得參數, 根據參數設置標志位,通知filesys.exe執行刪除動(dòng)作.



下面是實(shí)現。


eboot增加了下面命令


C) Clean SYS Hive register: TRUE
c) Clean USER Hive register: TRUE


用來(lái)設置bSysHiveClean和bUserHiveClean變量。



oal部分:



Ioctl.c


--------


//


// Function: OALIoCtlBGetHiveCleanFlag


//


// This function is Get the Clean Hive Clean Flage


//


BOOL OALIoCtlBGetHiveCleanFlag(


UINT32 code, VOID *lpInBuf , UINT32 nInBufSize, VOID *lpOutBuf, UINT32 nOutBufSize , UINT32 *pOutSize)


{


DWORD *pdwFlags;


BOOL *pfClean;


BSP_ARGS * pBspArgs = (BSP_ARGS *)IMAGE_SHARE_ARGS_UA_START;


BOOL Flage = 0;


if (!lpInBuf || (nInBufSize != sizeof(DWORD)) || !lpOutBuf || (nOutBufSize != sizeof(BOOL))) {


NKSetLastError(ERROR_INVALID_PARAMETER);


return FALSE;


}



pdwFlags = (DWORD *)lpInBuf;


pfClean = (BOOL*)lpOutBuf;




if (*pdwFlags == HIVECLEANFLAG_SYSTEM) {


if(pBspArgs->bSysHiveClean)


RETAILMSG(1, (TEXT("OEM: cleaning system hivern")));


else


RETAILMSG(1, (TEXT("OEM: Not cleaning system hivern")));



*pfClean = (pBspArgs->bSysHiveClean==TRUE);


}


else if (*pdwFlags == HIVECLEANFLAG_USERS) {


if(pBspArgs->bUserHiveClean)


RETAILMSG(1, (TEXT("OEM: cleaning user hivern")));


else


RETAILMSG(1, (TEXT("OEM: Not cleaning user hivern")));


*pfClean = (pBspArgs->bUserHiveClean==TRUE);


}



return TRUE;


}



這個(gè)宏IMAGE_SHARE_ARGS_UA_START就是指向0xa0020800.eboot也往同一個(gè)地址設置即可.



Ioctl_tab.h


----------------


增加新的ioctl:


// 清除hive注冊表


{IOCTL_HAL_GET_HIVE_CLEAN_FLAG, 0, OALIoCtlBGetHiveCleanFlag },


linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>