在WinCE中,Display驅(qū)動(dòng)由GWES模塊來管理。WinCE提供了兩種架構(gòu)的Display驅(qū)動(dòng)模型,可以滿足不同的硬件需求。一種是基于WinCE DDI的Display驅(qū)動(dòng)模型,另一種是基于DirectDraw的Display驅(qū)動(dòng)模型。下面將對(duì)兩種架構(gòu)作簡(jiǎn)單介紹。
1. Display驅(qū)動(dòng)模型
WinCE下的Display驅(qū)動(dòng)直接由GWES模塊管理,它會(huì)直接被GWES模塊管理和調(diào)用。Display驅(qū)動(dòng)實(shí)際上也是分層的,其中包括GPE庫,該庫處理一些默認(rèn)的繪圖,相當(dāng)于驅(qū)動(dòng)的MDD層。用戶只需要開發(fā)和硬件相關(guān)的PDD層驅(qū)動(dòng)就可以了。在WinCE中,整個(gè)架構(gòu)如圖:
如圖,Application為一個(gè)應(yīng)用程序,該程序會(huì)調(diào)用圖形設(shè)備接口函數(shù)(GDI),而GDI函數(shù)是由Coredll.dll模塊導(dǎo)出的。Coredll.dll會(huì)將函數(shù)調(diào)用的參數(shù)打包,然后觸發(fā)對(duì)另一個(gè)進(jìn)程的本地過程調(diào)用(LPC),所有的繪圖和開窗口的工作被傳給內(nèi)核中GWES模塊。GWES模塊被稱為圖形,窗口和事件子系統(tǒng),專門處理圖形輸出和用戶輸入等事件及相關(guān)的所有交互。GWES模塊會(huì)調(diào)用Display驅(qū)動(dòng)完成對(duì)顯示硬件的操作。Display驅(qū)動(dòng)由GPE和DDL.dll組成,GPE完成基本的默認(rèn)繪圖工作,而DDI.dll實(shí)際上從GPE類上繼承而來的,并實(shí)現(xiàn)了相關(guān)的顯示硬件的操作。