yjhleaf
驱动小牛
驱动小牛
  • 注册日期2001-11-04
  • 最后登录2005-11-23
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:919回复:1

怎样在WIN2000下构造驱动程序??

楼主#
更多 发布于:2002-05-27 10:23
  我真搞不懂为什么大家都说用VC和DDK在WIN2000下构造驱动程序很好用,就是役名老兄的经验.可是我怎么就老是构造不起?
  @echo off
if \"%1\"=\"\" goto usage
if \"%3\"=\"\" goto usage
if not exist %1\\bin\\setenv.bat goto usage
call %1\\bin\\setenv %1 %4
%2

cd %3
build -b -w %5 %6 %7 %8 %9

goto exit

:usage
echo usage MakeDrvr DDK_dir Driver_Driver Driver_Dir free/checked [build_options]
echo eg    MakeDrvr %%DDKROOT%% C: %%WDMBOOK%% free -cef

:exit
 这个东东到底是啥意思?那个%1,%2..是什么意思?这个批处理对于每个驱动程序都一样吗??
 拜托各位仁兄谈谈了.
忽如一夜春风来,千树万树梨花开。
Tomgin
驱动牛犊
驱动牛犊
  • 注册日期2001-08-08
  • 最后登录2005-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-05-27 11:06
不要使用那个东西,那是从书上抄的,太麻烦了。
如果你把它看懂了,完全可以自己写。

曾经写过的,论坛上找不到了。将就着看吧。

微软在提供 驱动程序编程的时候提供的库文件,和头文件
与 sdk 不一样。由于当前的主流开发工具都是使用sdk
的库文件和头文件,所以他们的却省配置都不能编译驱动程序。

由于上述原因导致,许多程序员开始开发驱动程序的时候,觉得
很麻烦,很困难。

只要大家知道编译程序的原理,和灵活的运用他,那么编译驱动程序
其实,很简单。

其实编译驱动程序的关键是需要大家对编写 windows 下的 批处理文件
或 nuix 的 shell 脚本的编写 有一定的了解。

在编译一个程序的时候,需要的东西是:

1、编译程序,连接程序...等可执行文件。    
   需要程序员设置路径,让你能访问到所有的可执行文件。
   有时驱动程序需要sdk 的原因是,需要sdk中的资源编译程序。
   但是在 ddk 中有时也包含这个程序。不过你需要设置一下路径
   在98 下是 c:\\98ddk\\bin\\win98。所以一般情况下编写驱动程序
   不需要sdk 。
   我没有使用过 nt4 的ddk 所以对 他的是否需要sdk 不太清楚。
   据说 nt4 ddk 在设置编译环境的时候,以读注册表来判断sdk
   是否存在。来确定需要的sdk 可执行文件是否存在。而能否编译
   驱动程序。
  
2、各种头文件,库文件
   同样需要设置路径,使你的编译程序能够找到他。
  
只要满足上述两个条件,就因该能顺利的编译一个驱动程序。

例子:在 vc 下编译驱动程序。

1、ddk, vc 安装完毕。

2、在 vc 的 options -- Directories
   include files -- 中添加你的 ddk 中的 inc 目录,和他下面的所有子目录。
   library files -- 中添加你的 ddk 中的 lib(98), libfre(nt/2k), libch(nt/2k)
                    和他下面的所有子目录。
   executable files -- 中添加你的 ddk 中的 bin 目录,和他下面的所有子目录。
  
3、创建一个 makefile 的工程。把你的所有程序添加进去。
包括编译你的驱动程序的 makefile 文件

   在 project setting (alt+f7) 中
   General -- build command line 中 输入 mk.bat(98), mk.cmd(nt/2k)
   General -- output file name 中 输入 可以带路径的 驱动程序名字。
  
   编译 vxd :  的  mk.bat
  
@echo off
echo Author      :  Qian
echo Create Data :  2000.7.1
echo Function    :  start ddk environment and build vxd file
echo on

rem 调用 ddk 的初始化环境的 批处理文件
call c:\\98ddk\\bin\\setenv.bat c:\\98ddk checked

rem 转到你的驱动程序目录
d:
cd \\work\\qian\\vxd

rem 编译驱动程序
build -b -w -nmake /a


   编译 wdm :  的  mk.cmd
  
@echo off
echo Author      :  Qian
echo Create Data :  2001.8.7
echo Function    :  start ddk environment and build Wdm file
echo on

rem 调用 ddk 的初始化环境的 批处理文件
call c:\\NTDDK\\bin\\setenv.bat c:\\NTDDK checked

rem 转到你的驱动程序目录
d:
cd \\Work\\Qian\\Wdm\\test

rem 编译驱动程序
build -b -w -nmake /a
    
    
按 f7 便可以生成驱动程序了。

我觉得还是没说太明白,如有疑问,
来 mail: Asm386@sina.com or Asm386@sohu.com  
努力呀,还有许多东西不会呢。
游客

返回顶部