如何用Delphi编写的EasySYS写驱动程序的问题(希望帖子推荐)
EasySYS写驱动程序的高级应用1、sys文件就是一个dll文件 
2、EasySYS写驱动程序 生成的是.sys格式文件
3、框架很明细
4、object   pascal也在EasySYS中实用 
5、过程定义/函数定义与Delphi内的一样
6、参数定义...............

解决方案 »

  1.   

    EasySYS中的工程文件
    1)//default.dspr
    [MAIN]
    PATH=Unit1.pas
    [PAS]
    Count=0
    [SYSTEM]
    NAME=SYSTEM_
    [RUN]
    EXEPATH=
    CLEAROPT=111
    LINKLIB=ntoskrnl.lib hal.lib win32k.lib ntdll.lib ntutils.lib
    NOTDRIVE=1
    OPENKMDMANAGER=0
    OPENDBGVIEW=0
    2)//Unit单元
    unit Unit1;interfaceuses 
      nt_status, ntoskrnl;function _DriverEntry(pDriverObject: PDriverObject; RegistryPath: PUnicodeString) : NTSTATUS; stdcall;implementationprocedure DriverUnload(pDriverObject: PDriverObject); stdcall;
    beginend;function _DriverEntry(pDriverObject: PDriverObject; RegistryPath: PUnicodeString) : NTSTATUS; stdcall;
    begin
      pDriverObject^.DriverUnload := @DriverUnload;
    end;end.
    3)编译方式
    编译器:编译开始......
    MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
    dcc32 -U"D:\EasySYS\SYSTEM_\include" -B -CG -JP -$A-,C-,D-,G-,H-,I-,L-,P-,V
    -,W+,Y- -O+ "D:\EasySYS\XxDemo\Unit1.pas"CodeGear Delphi for Win32 compiler version 18.5
    Copyright (c) 1983,2007 CodeGear
    D:\EasySYS\XxDemo\Unit1.pas(1) D:\EasySYS\XxDemo\Unit1.pas(1) D:\EasySYS\XxDemo\Unit1.pas(1) D:\EasySYS\XxDemo\Unit1.pas(6) D:\EasySYS\XxDemo\Unit1.pas(6) D:\EasySYS\XxDemo\Unit1.pas(6) D:\EasySYS\XxDemo\Unit1.pas(6) D:\EasySYS\XxDemo\Unit1.pas(8) D:\EasySYS\XxDemo\Unit1.pas(20) Warning: W1035 Return value of function '_DriverEntry' might be undefined
    D:\EasySYS\XxDemo\Unit1.pas(22) 23 lines, 0.05 seconds, 78 bytes code, 4 bytes data.
    rmcoff "D:\EasySYS\XxDemo\Unit1.obj"RMCOFF 1.0 COFF utility toolkit for KmdKit4D(Delphi & BCB)
    OMF2D,OMF2COFF,RMCOFF 3 in 1
    Copyright (C) 2008 LanHua(mickeylan)     [email protected]
    Usage: rmcoff <input obj> [output obj]Process OK...! link /NOLOGO /ALIGN:32 /BASE:0x10000 /SUBSYSTEM:NATIVE /DRIVER /LIBPATH:"D:\EasySYS\SYSTEM_\lib" /ENTRY:DriverEntry ntoskrnl.lib hal.lib win32k.lib ntdll.lib ntutils.lib /out:"D:\EasySYS\XxDemo\default.sys" "D:\EasySYS\XxDemo\Unit1.obj"编译器:编译完成
      

  2.   

    名称: EasySYS 版本: 0.3.1作者: Lei Bian 描述: 一键建立VC+DDK的驱动开发环境。 背景:很多程序员喜欢使用VC这样的IDE(我就是),而微软强烈建议我们使用DDK的编译环境,即进入相应的编译环境(如 Windows 2000 Checked Build Enviroment),在你的驱动源程序目录下使用build命令编译驱动生成SYS。习惯了 VC的我们感觉这样挺麻烦的,幸好VC IDE很强大,我们可以对他进行简单的设置来搭建VC+DDK的驱动编译环境。网上有很多的文章介绍这个(咱网站的老大znsoft也发过),最近我看到了Chunhua Liu前辈的QuickSYS(0.2.2)这个软件,感觉非常好,但是现在我的DDK是 DDK 2003 SP1,QuickSYS 0.2.2版本是通过配置VC编译器的详细参数实现了驱动的编译,DDK 2003下无法正常工作了,因为 DDK 2003 很多头文件对编译器的版本做了限制,VC6的编译器版本过低而无法编译(VC 2003 的编译器应该可,PS:但是微软不赞同了这种做法以)。所以我在Chunhua Liu前辈的基础上开发了0.3.0.0版本,适用DDK2000/DDKXP/DDK2003,方便的建立VC+ DDK的驱动开发环境,免去了繁琐的手工设置。软件使用了DDKBUILD.BAT(来自Hollis Technology Solutions)它的功能是根据不同设置正确调用DDK来编译驱动。
      

  3.   

    不会吧,来看热闹的呀>>>>>>>>>
      

  4.   

    在这个EasySYS中如何编写???????
      

  5.   

    不会吧,再不顶,帖子就要沉了呀,
    爱好编程的高手,顶顶呀>>>>>>>>>>
      

  6.   

    可是我不会用C呀,但是想深入的学习DELPHI,所有才想写个"驱动程序"
      

  7.   

    delphi并不适合做驱动程序,深入学习delphi应该去做它适合的
      

  8.   

    请赐教一二呀>>>>>>>>>>
      

  9.   

    本帖最后由 gyk120 于 2011-06-18 20:36:19 编辑
      

  10.   

    kmdkit4d编译出来的好像被当做病毒
      

  11.   

    版本: WDK 7600.16385.1 这个我有呀,不会用呀???????????
      

  12.   

    要搞底层的东西c和asm是少不了的
      

  13.   

    那还请您多多赐教>>>>>>>>>>>>>>>>>>>>
      

  14.   

    我都说过了,EasySYS只是一个IDE,他和你用什么语言没有一点关系,EasySYS下面你可以用C,可以用ASM,可以用Delphi,甚至可以用VB,只要你有一个能把VB模块转成驱动PE格式的工具
    Delphi写驱动不是因为EasySYS,而是因为rmcoff,这个工具能把Delphi的中间文件omf转换成能被微软link识别的PE coff格式,所以才能编译驱动
      

  15.   

    实例我还真不知道该怎么举
    举个不恰当的例子,EasySYS只是个饭店的服务生,你只是把你的信息反馈给厨师(kmdkit4d或者WDK),你指望一个服务生去炒菜实在是难为人了
    至于PE格式,如果你不了解的话三言两语说不清楚……建议你自己了解下PE格式,还有中间文件的格式(omf,coff之类)
      

  16.   

    谢谢,大体意思,我是明白了,但是这个.SYS编程真有点难度呀......
      

  17.   

    没搞过驱动,但delphi可以和c/C++混合编程。
      

  18.   

    .sys到底如何编写才能比较严谨呀>>>>>>>>>
    也可能提供一些实例程序.......
      

  19.   

    vc + ddk 
    或者vc+driverstdios+ddk