您的位置:首页 > 其它

WINCE USB使用一段时间后不能同步问题的修复

2014-01-15 09:56 253 查看
作者:LoongEmbedded

转自:/article/1440813.html

WINCE系统在使用USB同步功能一段时间后,会出现同步失败的问题,这时候弹出对话框:



对话框的内容是“无法验证您设备上ActiveSync的版本,可能有程序(例如防火墙)正在阻止使用ActiveSync端口连接到设备,或者可能需要升级到PC上教新版本的ActiveSync”,这个问题很多使用WINCE系统的朋友都遇到过,目前只能找到出现问题时修复此问题的办法:

1. 在OEMInit函数中处理

在出现此问题的情况下,重启时执行下面的操作就可以解决此问题,但此动作相当于回复出厂设置了。

// Check clean boot flag in BSP Args area

//

{

// This is the global shared Args flag

BOOL *bCleanBootFlag = (BOOL*) OALArgsQuery(BSP_ARGS_QUERY_CLEANBOOT);

if(*bCleanBootFlag)

{

OALMSG(1, (TEXT("OEM: Force clean boot.\r\n")));

// Clear the flag so that we don't get here in the next boot unless itis set again.

*bCleanBootFlag = FALSE;

// Tell filesys.exe that we want a clean boot.

NKForceCleanBoot();

// Also set the hive and storage clean flags if not already set

{

BOOL *bHiveCleanFlag = (BOOL*)OALArgsQuery(BSP_ARGS_QUERY_HIVECLEAN);

BOOL *bFormatPartFlag = (BOOL*) OALArgsQuery(BSP_ARGS_QUERY_FORMATPART);

*bHiveCleanFlag = TRUE;

*bFormatPartFlag = TRUE;

}

}

}

2. 删除default.vol

HANDLE hPartition;

hPartition= OpenPartition(OpenStore(_T("DSK2:")), _T("Part00"));

DismountPartition(hPartition);

MountPartition(hPartition);

if(DeleteFile(_T("\\SysDisk\\Documentsand Settings\\default.vol")) == FALSE)

{

MessageBox(_T("Repairfail"));

}

else

{

MessageBox(_T("Repairsuccess"));

}

CloseHandle(hPartition);

使用同步功能过程中,\\Documents and Settings\\default.vol文件会越来越大,不能正常同步就是default.vol文件被异常修改了,值需要删除此文件,然后冷启动即可,冷启动的时候,系统功能会自动生成新的(也就是刚刷完系统后的)default.vol,这样就可以解决此问题了。

但是在使用一段时间后,还有可能会重现此问题,这时,只需要做同样的修复动作就可以了。当然最好的办法就从根本上杜绝此问题的产生,知道的朋友,还望分享一下。

备注:另外一篇关于解决此问题的博文:http://blog.csdn.net/renpine/article/details/4709437#comments
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: