分层驱动程序与整体式驱动程序之比较---很好的总结

大多数 Windows CE 设备驱动程序都由一个平台相关驱动程序 (PDD) 和一个模型设备驱动程序 (MDD) 组成。整体式驱动程序 将所有 PDD MDD 组合到一个驱动程序中。分层驱动程序 没有组合它们。

MDD 具有下列特征:

包含给定类型的所有驱动程序所共有的代码。

调用 PDD 函数以访问硬件。

链接到 PDD 层,并且定义MDD 期望在该层中调用的设备驱动程序服务提供程序接口 (DDSI) 函数。

向操作系统 (OS) 公开设备驱动程序接口 (DDI) 函数。

OS 的其他部分可以调用这些函数。相关设备可以共享相同的 DDI。整体式驱动程序还公开 DDI 函数。

处理中断处理。

可供开发人员重用。

可以链接到多个 PDD

通常不需要进行更改。

如果进行了更改,则在将驱动程序迁移到将来的版本时可能会遇到麻烦。

包含任何中断服务线程 (IST)

PDD 具有下列特征:

由硬件平台特有的代码组成。

可能需要修改硬件平台。

专门用于使用特定的 MDD 实现。

公开 MDD 调用的 DDSI 函数。

整体式驱动程序不公开 DDSI 函数。

以下列表显示了在实现分层驱动程序和整体式驱动程序之间进行取舍时的注意事项:

分层驱动程序可能只需要修改 PDD

分层驱动程序增加了设备驱动程序中的函数调用的系统开销,因为 MDD 调用到 PDD 中。

整体式驱动程序改进了驱动程序性能,因为它将 MDD PDD 到组合一个层之中,这消除了 MDD PDD 进行的函数调用。

整体式驱动程序更难以迁移到将来版本的 Windows CE,因为 Windows CE 所包含的大多数设备驱动程序都被划分为一个 PDD 和一个 MDD

如果设备的功能与 MDD 层中的函数执行的任务很好地匹配,则整体式驱动程序可以更简单、更有效。

不管是实现分层驱动程序还是实现整体式驱动程序,都可以将任何示例驱动程序的源代码作为实现的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值