您的位置:首页 > 其它

WinCE同步和硬盘模式的切换

2007-10-22 21:51 246 查看
//========================================================================
//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"一个区别于以上字符串的数值即可.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: