在WinCE中,Display驅(qū)動由GWES模塊來管理。WinCE提供了兩種架構(gòu)的Display驅(qū)動模型,可以滿足不同的硬件需求。一種是基于WinCE DDI的Display驅(qū)動模型,另一種是基于DirectDraw的Display驅(qū)動模型。下面將對兩種架構(gòu)作簡單介紹。
1. Display驅(qū)動模型
WinCE下的Display驅(qū)動直接由GWES模塊管理,它會直接被GWES模塊管理和調(diào)用。Display驅(qū)動實際上也是分層的,其中包括GPE庫,該庫處理一些默認的繪圖,相當(dāng)于驅(qū)動的MDD層。用戶只需要開發(fā)和硬件相關(guān)的PDD層驅(qū)動就可以了。在WinCE中,整個架構(gòu)如圖:

如圖,Application為一個應(yīng)用程序,該程序會調(diào)用圖形設(shè)備接口函數(shù)(GDI),而GDI函數(shù)是由Coredll.dll模塊導(dǎo)出的。Coredll.dll會將函數(shù)調(diào)用的參數(shù)打包,然后觸發(fā)對另一個進程的本地過程調(diào)用(LPC),所有的繪圖和開窗口的工作被傳給內(nèi)核中GWES模塊。GWES模塊被稱為圖形,窗口和事件子系統(tǒng),專門處理圖形輸出和用戶輸入等事件及相關(guān)的所有交互。GWES模塊會調(diào)用Display驅(qū)動完成對顯示硬件的操作。Display驅(qū)動由GPE和DDL.dll組成,GPE完成基本的默認繪圖工作,而DDI.dll實際上從GPE類上繼承而來的,并實現(xiàn)了相關(guān)的顯示硬件的操作。