分層Driver的架構分成MDD與 PDD兩部份,前者和具體的設備綁定在一起,是針對特定設備特定型號的,後者是同一類設備驅動中公用的部分,主要由CE的系統支持提供,通常不需要修改。(意思就是說MDD是MS寫好的,PDD則要vendor自己來implement)
以Audio driver舉例:
若我們要implement一個stream interface driver,我們可以使用Microsoft提供的MDD(model device driver) library, Wavemdd.lib, 透過audio device driver service-provider interface(DDSI) function來實現stream interface function.
使用Wavemdd.lib,那我們就要create 一個對應的PDD(platform-dependent driver) library來implement audio DDSI function.
PDD library 通常會被稱為Wavepdd.lib,僅管它可能是不需要的, 但這兩個library會從audio driver被link起來 成為一個.dll的檔案,Wavedev.dll。
如圖所示: