WinCE操作系统是如何调用实时时钟的 OEMGetRealTime() 函数获取时间的?

HGP965   2009-3-20 16:17 楼主
WinCE启动以后,默认情况下,WinCE会每隔一段时间调用OEMGetRealTime()函数来获得系统的时间

SC_GetRealTime  ----调用---->  OEMGetRealTime();

SC_GetRealTime 声明在 Win32Methods[],  请问这个 Win32Methods[] 如何被操作系统调用?


///////////////////////////////////////////////////////////////////////////////////////
///////////////////////            以下参考        ////////////////////////////////////


Kwin32.c (private\winceos\coreos\nk\kernel):static BOOL SC_GetRealTime (LPSYSTEMTIME lpst)
Kwin32.c (private\winceos\coreos\nk\kernel):    (PFNVOID)SC_GetRealTime,                // 28


const PFNVOID Win32Methods[] = {
    (PFNVOID)SC_Nop,
    (PFNVOID)SC_NotSupported,
    (PFNVOID)SC_CreateAPISet,               //  2
    .......
    (PFNVOID)SC_GetRealTime,                // 28
    (PFNVOID)SC_SetRealTime,                // 29
    ...........
    (PFNVOID)SC_ConnectOsAxsT1,             // 196
};

回复评论 (4)

貌似这个问题只有知道源码的人才能知道了, 一般情况下只能猜猜了
点赞  2009-3-20 17:14
一层层地调用
点赞  2009-3-20 17:25
1. Windows CE 運行後是 shell 會定時呼叫類似 GetSystemTime 的 win32 api, 該函式實現於 Coredll.dll, 再由該 dll 與 kernel 的函式做溝通. 故該函式應是被 coredll.dll 來使用的.

2. 這方面的資料不多, 該相關的源碼 Microsoft 似也未公佈, 故細節也無法得知.

Paul, Chao @ Techware
点赞  2009-3-20 18:20
同问,,CE启动时频繁调用 OEMGETREALTIME   怎么能让它读慢点儿呢?
点赞  2009-4-23 17:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复