为什么wince 启动时一直在无缘无故执行OEMSetAlarmTime?

       虽然多年前的问题,接续http://bbs.csdn.net/topics/350068269中的讨论 ,始终没有找到合理的解释,通过分析winceos 核心源代码得知,在SCHEDULE.C文件中的SystemStartupFunc()函数中会调用OEMSetAlarmTime,但是是根据条件判断的。

       什么条件呢,就是ft和ft3两个时间相关变量的比较。

		if (hAlarmEvent) {
			OEMGetRealTime(&st);
			KSystemTimeToFileTime(&st,&ft);
			KSystemTimeToFileTime(&CurAlarmTime,&ft2);
			ft3.dwLowDateTime = 100000000; // 10 seconds
			ft3.dwHighDateTime = 0;
			sub64_64_64(&ft2,&ft3,&ft3);
			if (KCompareFileTime(&ft,&ft3) >= 0) {
				SetEvent(hAlarmEvent);
				hAlarmEvent = NULL;
			} else
			    OEMSetAlarmTime(&CurAlarmTime);
		}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值