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

 

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,这样就可以解决此问题了。

 

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

 

系统:WINCE6.0+S3C2443

问题:接上usb device线开机之后activesync功能可以正常使用,重新拔出再接入也可以正常使用,但是如果没有接上usb device线开机,那么开机之后,接入usb device线后activesync功能不能正常工作,PC机弹出“无法识别的USB设备”

 

1.       Usb device驱动的注册表信息

Usb device驱动对应在platform.reg中的注册表信息内容如下:

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/SC2443USBFN]

   "Dll"="sc2443usbfn.dll"

   "Prefix"="UFN"

   "Priority256"=dword:64

   "IoBase"=dword:B0B00000

   "IoLen"=dword:1000        ; Use one page

   "Irq"=dword:19

   "BusIoctl"=dword:2a0048

   "IClass"=multi_sz:"{E2BDC372-598F-4619-BC50-54B3F7848D35}=%b","{6F40791D-300E-44E4-BC38-E0E63CA8375C}=%b"

 

2.       解决的办法

在usb deive驱动的PLUG_IST中加入发现接入usb device线时对usb device控制器的设置,如下图所示

虽然是可以解决了上面描述的问题,但还有待后面深入去了解,而且感觉这样的解决办法不是很好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值