WinCE同步和硬盘模式的切换

//========================================================================
//TITLE:
//    WinCE同步和硬盘模式的切换
//AUTHOR:
//    norains
//DATE:
//    Monday  22-October-2007
//Environment:
//        EVC4.0 + Windows CE 5.0 Standard SDK
//========================================================================

    本文一下内容基于RMI AU1200的实验平台,且没有更改默认的同步及硬盘模式的驱动文件名,故无法保证本文的方法适用于所有的平台.
   
    在进行我们的文章之前,还有一件事情需要确认,就是make nk.bin时已经将两种模式的特性添加.
   
    如果平台符合之前所说的两个条件,那么离成功已经只有一步之遥,剩下的也就非常简单的(当然之前也没见得多复杂^_^).
   
    接上USB线,wince是决定采用同步还是硬盘模式,取决于注册表的参数.如果在DefaultClientDriver的键值是Serial_Class,则是同步模式;反之,如果为Mass_Storage_Class,则为硬盘模式.需要留意一点的是,device.exe在启动后会自动加载usb的驱动.换句话说,如果系统成功启动后然后再更改注册表,那么无论改为何种模式,链接USB线后都是之前的模式.所以,如果我们需要设置生效,需要在设置完毕后重启机器.
   
    说破了实在不之前,让我们来看看模式设置的代码:
    CReg reg;
    reg.Create(HKEY_LOCAL_MACHINE,TEXT(
" Drivers/USB/FunctionDrivers " ));

    TCHAR szDisp[MAX_PATH] 
=  { 0 };
    reg.GetValueSZ(TEXT(
" DefaultClientDriver " ),szDisp,MAX_PATH);
    MessageBox(NULL,szDisp,TEXT(
" The current value " ),MB_OK);

    
// 同步模式
    
// reg.SetSZ(TEXT("DefaultClientDriver"),TEXT("Serial_Class"));
    
    
// 硬盘模式
    
// reg.SetSZ(TEXT("DefaultClientDriver"),TEXT("Mass_Storage_Class"));
    
    reg.Reset();
 
    一切就是那么简单,寥寥几句代码,即可完成两种模式的转换.如果比较无聊,接上USB线啥都不做,那只要给"DefaultClientDriver"一个区别于以上字符串的数值即可.

你可能感兴趣的:(windows,null,Class,Path,平台,WinCE)