WinCE同步和硬盘模式的切换

本文介绍如何通过修改注册表参数实现WinCE系统中同步模式与硬盘模式之间的切换。通过设置DefaultClientDriver的值为Serial_Class或Mass_Storage_Class,可以分别启用同步模式或硬盘模式。
//========================================================================
//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线后都是之前的模式.所以,如果我们需要设置生效,需要在设置完毕后重启机器.

说破了实在不之前,让我们来看看模式设置的代码:
CRegreg;
reg.Create(HKEY_LOCAL_MACHINE,TEXT(
"Drivers/USB/FunctionDrivers"));

TCHARszDisp[MAX_PATH]
={0};
reg.GetValueSZ(TEXT(
"DefaultClientDriver"),szDisp,MAX_PATH);
MessageBox(NULL,szDisp,TEXT(
"Thecurrentvalue"),MB_OK);

//同步模式
//reg.SetSZ(TEXT("DefaultClientDriver"),TEXT("Serial_Class"));

//硬盘模式
//reg.SetSZ(TEXT("DefaultClientDriver"),TEXT("Mass_Storage_Class"));

reg.Reset();

一切就是那么简单,寥寥几句代码,即可完成两种模式的转换.如果比较无聊,接上USB线啥都不做,那只要给"DefaultClientDriver"一个区别于以上字符串的数值即可.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值