网络驱动应用开发 --续五
2008-05-23 21:49
323 查看
最近事情特别多,都没有来得及整理一些开发方面东西。
前面把驱动的体系做了个简单的介绍,想必对驱动你有了对于网络过滤驱动NDIS与一般的驱动在体系上没有很大的变化,只是 对于网络过滤驱动,有它特殊的部分,对于中间驱动 .
在进行Windows内核驱动开发之前,我们需要知道和了解很多其他周边,外围的知识,如在XP以前的系统 如WIN3X,WIN95 ,WIN98,及其WIN2000.对于以前的在 这些平台台下驱动的构建。对于前面介绍过的驱动模型,及其WINDOWS驱动类型,WINDOWS的Components,内核驱动设计的目标,相关了解都是很重要的。
还有其他在驱动开发中的常用术语,如 Driver Object ,Device Object ,实际开发的例子中结合才能深刻体会具体的含义,否则必将空洞。需要的是理解而不是去记忆。特别是WIN98,WIN2000及其以后的系统广泛的使用WDM驱动模型,让我们开发驱动的时间,只要遵循它的规范,可以进行快速高效的驱动开发。
下面我们就以以下目录结合其他相关的深入开发
[b]前面我们已经介绍过驱动的分层体系。理解它 我们可以从一个实际的驱动来看其共性:首先用户发起一个请求,比如需要使用打印机打印指定的文档,我们用户并不会和硬件直接交付,用户层通过应用程序提供的接口,传递一个或则多个命令 给负责接口的部分。然后就由驱动来负责处理这些请求。驱动然后再进行内部处理,将处理结果,返回给调用者。如果当前驱动不能处理相应的请求,那么驱动有可能继续将请求向下传递。最终硬件完成指定的功能要求。在Windwos32 ,我们关心的驱动与用户接口层API进行通讯,也就是我们常说的驱动与应用程序的通讯,包括数据从WDM读取,然后将数据写入WDM。系统的有相关的文档入 Microsoft SDK 等。以下常用到的必将多的:[/b]
[b]
[/b]
[b] 至于他们怎么调用,入口参数,我们可以参考相应的文档,在此不作过多的介绍,在后面的实际遇到的时候再做详细讨论。
在了解拉与应用接口后,我们在看驱动内部是怎么实现处理的用户发起的请求。通常这些请求就是我们常见的IRP(Interupt Reqest Pakect) 在驱动内部,对应的有很多例程,他们之间传递信息大部分也是通过传递IRP,内核例程专门完成处理用户的请求操作和一些特殊的任务。这些例程根据驱动类型不同,有一些差异。对于WDM 驱动,大体结构上没有多大差别。对于驱动的例程,包括的必将多。下面我们把一些主要的例程贴出来。
[/b]
前面把驱动的体系做了个简单的介绍,想必对驱动你有了对于网络过滤驱动NDIS与一般的驱动在体系上没有很大的变化,只是 对于网络过滤驱动,有它特殊的部分,对于中间驱动 .
在进行Windows内核驱动开发之前,我们需要知道和了解很多其他周边,外围的知识,如在XP以前的系统 如WIN3X,WIN95 ,WIN98,及其WIN2000.对于以前的在 这些平台台下驱动的构建。对于前面介绍过的驱动模型,及其WINDOWS驱动类型,WINDOWS的Components,内核驱动设计的目标,相关了解都是很重要的。
还有其他在驱动开发中的常用术语,如 Driver Object ,Device Object ,实际开发的例子中结合才能深刻体会具体的含义,否则必将空洞。需要的是理解而不是去记忆。特别是WIN98,WIN2000及其以后的系统广泛的使用WDM驱动模型,让我们开发驱动的时间,只要遵循它的规范,可以进行快速高效的驱动开发。
下面我们就以以下目录结合其他相关的深入开发
[b]前面我们已经介绍过驱动的分层体系。理解它 我们可以从一个实际的驱动来看其共性:首先用户发起一个请求,比如需要使用打印机打印指定的文档,我们用户并不会和硬件直接交付,用户层通过应用程序提供的接口,传递一个或则多个命令 给负责接口的部分。然后就由驱动来负责处理这些请求。驱动然后再进行内部处理,将处理结果,返回给调用者。如果当前驱动不能处理相应的请求,那么驱动有可能继续将请求向下传递。最终硬件完成指定的功能要求。在Windwos32 ,我们关心的驱动与用户接口层API进行通讯,也就是我们常说的驱动与应用程序的通讯,包括数据从WDM读取,然后将数据写入WDM。系统的有相关的文档入 Microsoft SDK 等。以下常用到的必将多的:[/b]
[b]
[/b]
[b] 至于他们怎么调用,入口参数,我们可以参考相应的文档,在此不作过多的介绍,在后面的实际遇到的时候再做详细讨论。
在了解拉与应用接口后,我们在看驱动内部是怎么实现处理的用户发起的请求。通常这些请求就是我们常见的IRP(Interupt Reqest Pakect) 在驱动内部,对应的有很多例程,他们之间传递信息大部分也是通过传递IRP,内核例程专门完成处理用户的请求操作和一些特殊的任务。这些例程根据驱动类型不同,有一些差异。对于WDM 驱动,大体结构上没有多大差别。对于驱动的例程,包括的必将多。下面我们把一些主要的例程贴出来。
[/b]
以上资料来自windows DDK驱动 个人做拉,一些小的整理。对于驱动的例程介绍我们今天就不介绍拉。由于时间关系,今天到此为止吧。在下篇在对驱动的例程作较多的介绍。
能在茫茫人海中遇到一个一起学习的人不容易,愿个人整理收集的点资料能对收集资料的你有点绵薄之力。你的评语就是就算对我最大的鼓舞。谢谢!!!相关文章推荐
- 嵌入式应用/驱动开发网络环境设置-使用NFS网络文件系统挂载根文件系统
- 网络驱动应用开发 --续四
- 网络驱动应用开发 --续二
- BPF(Berkeley Packet Filter)内核应用性能调优之 高效的驱动级网络数据包处理
- Android 驱动开发ko文件应用片段
- 使用 Apache MINA 2 开发网络应用(IBM)---结构介绍篇
- 分布式应用中基于事件驱动的应用开发模型
- REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式
- 网络应用开发基础一
- 使用 Apache MINA 2 开发网络应用
- Android开发16——获取网络资源之基础应用
- 嵌入式系统开发之驱动篇002——完整的linux驱动 + 应用测试demo(神文)
- [Linux驱动开发] 网络设备之虚拟网卡
- Amf3+socket开发网络游戏或应用的一点研究心得
- 在windows下基于libuv开发网络应用的vs工程配置示例
- Unix/Linux进阶(系统管理、网络配置、Shell编程、Linux内核、驱动开发经典书籍及学习顺序)
- 网络开发工具应用客户端下载Dreamweaver8在Windows XP中安装详解与步骤
- 【Android应用开发技术:网络通信】网络服务可发现基本原理
- 【Win10 应用开发】扫描和连接Wi-fi网络