2007年9月17日 星期一

MDD與PDD

分層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。
如圖所示:

2 則留言:

Unknown 提到...

為什麼妳有些文章可以張貼意見,
有些不行呢?
譬如說:BattDrv_661那一篇...

想請問一下...
如果用WM9715,跟你用的wm9712有差別嗎?
===
還有我之前做過三星的2440平台,
它的battery driver有使用PowerPolicyNotify(PPN_POWERCHANGE, 0)發出電量更新event,但是我看Centrality好像沒有用到這個function...?

Roy Chen 提到...

請教一下, 關於第一段的文章內, 順序上是不是有問題? 應該是
MDD:同一類設備驅動中公用的部分...;
PDD:針對特定設備特定型號的