论文部分内容阅读
本文深入分析了Windows2000下的PCI声卡的WDM驱动程序体系结构和开发技术,对开发过程中的关键步骤和问题进行了详细的讨论和分析。论文采用了由普遍到特殊的研究方法,从DDK自带的AC97驱动源程序入手,结合实际的声卡硬件特征开发自己的PCI声卡驱动程序。
本文首先介绍Windows2000的设计原理和总的体系结构以及Windows2000下驱动程序的概况,特别讨论了Windows2000的中断请求级,I/O请求包结构以及I/O处理顺序;接着详细分析了WDM驱动程序模型的特性和层次结构,重点分析了DriverObject和DeviceObject这两个驱动程序设计中比较关键的对象,阐述了驱动程序的加载顺序,研究了驱动程序设计中的关键例程DriverEntry和AddDevice的程序实现方法;同时论文还介绍了一些Windows2000的硬件基础知识,着重介绍了寄存器的访问方法,DMA机制以及PCI总线的特征;并且对声卡的硬件体系结构,音频基本概念和音频处理的一些基本技术做了介绍,特别对该论文的开发对象Banjo声卡进行了详细的分析,介绍了它的工作原理、工作方式,总结了该声卡的各功能模块、各个寄存器的作用。针对诸如声卡的多媒体设备,Microsoft特别提供了多媒体的驱动程序结构。本文对该类驱动程序结构进行了介绍。Microsoft提供的DDK带有一个AC97驱动源程序,它为PCI声卡驱动程序的开发提供了一个框架。仔细研究AC97驱动源程序,分析它的框架结构和主要类对象,这是进行声卡驱动程序开发非常关键的步骤。在这个驱动程序框架的基础上,结合实际的声卡特征,按各功能模块分步开发声卡的驱动程序。对驱动程序的加载/卸载过程,基本播放/录音功能的实现以及ISR例程和DPC例程的程序实现做了详细的说明。最后,本文还特别介绍了驱动程序编译工具的使用,编译和调试环境的建立以及安装文件.inf的结构和编写。
本文对声卡驱动程序的开发过程中所涉及的内容都作了阐述,它不仅对声卡驱动程序开发有直接的参考作用,而且对Windows2000平台下各种类型驱动程序的开发都有实际的借鉴意义。