阅读:1996回复:5
MDD和PDD的疑惑
一个简单的流接口驱动程序我已经做完了,我想了解一下分层驱动程序的结构到底是个什么东西,目前了解的信息和问题是
1。PDD提供DDSI给MDD使用,MDD提供DDI给应用程序使用,而且可能不要改。到底这个接口怎么定义出来的呢。 2。MDD是个模型设备驱动,提供的DDI是否就是×××_Open/×××_Close/×××_IoControl等? 3。MDD一般不要修改,那么就意味着DDSI是不变的,那PDD又是怎样提供DDSI的呢? 4。我觉得流接口驱动基本可以做所有的事了,分层驱动的产生是出于什么目的呢,是为了结构化? |
|
沙发#
发布于:2005-03-25 15:48
(1)这个接口应该是MS定义出来的;
(2)对于流驱动,×××_Open/×××_Close/×××_IoControl等就是ddi;如果不是流驱动,它的ddi不具有上述形式; (3)在PDD中负责实现DDSI函数; (4)我的理解:a.分层驱动便于移植;b.它可以把很多琐碎的工作放在mdd中,这样pdd中只要实现与硬件平台相关的相对简单的功能就行了;c.一个mdd可以和多个pdd相连,这样一个mdd可以管理多个同类的设备。等等。 |
|
|
板凳#
发布于:2005-03-25 16:19
感谢wwei_wang
2。如果不是流驱动,它的DDI具有固定的形式吗 哪个分层驱动比较容易理解一点,我想从一个例子开始着手学习一下 |
|
地板#
发布于:2005-03-29 10:14
(1)没有固定的命名形式,由于各个驱动管理不同的硬件设备,它的ddi和ddsi函数名经常包含与所管理设备相关的字符,如TouchPanelDisable()和DdsiTouchPanelDisable()分别是触摸屏驱动的ddi和ddsi函数。
(2)pb自带了很多这样的例子,你可以先看看串口驱动。 |
|
|
地下室#
发布于:2005-03-29 10:15
(1)没有固定的命名形式,由于各个驱动管理不同的硬件设备,它的ddi和ddsi函数名经常包含与所管理设备相关的字符,如TouchPanelDisable()和DdsiTouchPanelDisable()分别是触摸屏驱动的ddi和ddsi函数。
(2)pb自带了很多这样的例子,你可以先看看串口驱动,同时结合 pb的帮助文档。 |
|
|
5楼#
发布于:2005-04-01 13:27
wwei_wang是的好人,谢谢他的帮助!
|
|