tonney
驱动牛犊
驱动牛犊
  • 注册日期2005-03-22
  • 最后登录2007-04-16
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望9点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1921回复:5

MDD和PDD的疑惑

楼主#
更多 发布于:2005-03-25 15:17
一个简单的流接口驱动程序我已经做完了,我想了解一下分层驱动程序的结构到底是个什么东西,目前了解的信息和问题是

1。PDD提供DDSI给MDD使用,MDD提供DDI给应用程序使用,而且可能不要改。到底这个接口怎么定义出来的呢。

2。MDD是个模型设备驱动,提供的DDI是否就是×××_Open/×××_Close/×××_IoControl等?

3。MDD一般不要修改,那么就意味着DDSI是不变的,那PDD又是怎样提供DDSI的呢?

4。我觉得流接口驱动基本可以做所有的事了,分层驱动的产生是出于什么目的呢,是为了结构化?

wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于: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可以管理多个同类的设备。等等。
Come on, let us drive the world.
tonney
驱动牛犊
驱动牛犊
  • 注册日期2005-03-22
  • 最后登录2007-04-16
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望9点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-25 16:19
感谢wwei_wang
2。如果不是流驱动,它的DDI具有固定的形式吗

哪个分层驱动比较容易理解一点,我想从一个例子开始着手学习一下
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-29 10:14
(1)没有固定的命名形式,由于各个驱动管理不同的硬件设备,它的ddi和ddsi函数名经常包含与所管理设备相关的字符,如TouchPanelDisable()和DdsiTouchPanelDisable()分别是触摸屏驱动的ddi和ddsi函数。

(2)pb自带了很多这样的例子,你可以先看看串口驱动。
Come on, let us drive the world.
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-29 10:15
(1)没有固定的命名形式,由于各个驱动管理不同的硬件设备,它的ddi和ddsi函数名经常包含与所管理设备相关的字符,如TouchPanelDisable()和DdsiTouchPanelDisable()分别是触摸屏驱动的ddi和ddsi函数。

(2)pb自带了很多这样的例子,你可以先看看串口驱动,同时结合
pb的帮助文档。
Come on, let us drive the world.
SEUIC
驱动牛犊
驱动牛犊
  • 注册日期2002-12-07
  • 最后登录2016-04-20
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-04-01 13:27
wwei_wang是的好人,谢谢他的帮助!
游客

返回顶部