阅读:992回复:0
WDM问题
请各位高手详细讲解一下在Windows2000下(是在2000下,不是98)开发WDM驱动的具体过程,从安装DDK开始讲起,如何设置,如何创建工程,如何编译,以及如何安装开发好的驱动程序(或如何创建安装程序)。最好能给出详细步骤以及注意问题。我在网上查了很多资料,看了很多书,但都讲的不够细致。希望各位能详细讲解一下具体步骤,如果过程太烦琐不好讲,则可回答以下几个问题:
1、安装完DDK之后第一件做的事是什么?(好象应该是创建环境变量吧,为什么要创建环境变量呢?如何创建?) 2、安装完DDK之后在Visual C++的File->New->Project里面会不会有新的工程项目出现?开发一个WDM驱动程序应该选择什么类型的工程? 3、要用Build实用程序将写好的源代码构建成WDM驱动程序,如何使用Build?源代码一定要放到某个目录下吗?Build之后都会生成些什么?生成的东西会放在哪里? 4、Build过程中会用到诸如makefile,SOURCE,以及.rc等文件,这些文件到底有什么用?在Visual C++下如何创建这些文件?这些文件的内容全部要自己书写吗? 5、安装写好驱动程序有两种方法,第一是使用控制面板中的添加新硬件向导,第二是自己编写一个安装程序,哪种方法更好?如果要自己写一个安装程序,如何写?安装程序主要完成什么功能?.inf文件到底有什么用?驱动程序如何与注册表相联系?安装完驱动程序后要不要重起? 以下是WDM开发过程中的具体问题,烦劳各位帮我解释一下: 1、Guidgen这个工具放在哪里?我已经为设备注册了设备接口,想在用户程序中打开这个设备,CreateFile函数的第一个参数是什么? 2、假定系统为设备分配了3个端口(设为0xF1,0xF2,0xF3),现在先用CreateFile打开该设备,这时的文件指针是否指在0xF1上?如果调用一次ReadFile,文件指针是否指在0xF2上了?ReadFile的调用,文件指针与设备端口地址它们之间有什么关系?使用ReadFile等函数与设备通信还应注意什么其他问题? 3、wdm.h与ntddk.h有什么区别?在2000下如何使用它们? 烦劳各位高手详细解释,在此先谢了!! |
|