我用EasySYS创建了一个HelloWDM工程,也生成一个HelloWDM.sys,内的功能是:Hello World!,
我要是用DELPHI编程如何调用这个.sys并显示:Hello World!

解决方案 »

  1.   

    我用Microsoft Visual Studio 2010
    打开HelloWDM.sln
    并编译成.sys文件
      

  2.   

    你都设置成vs2010,wdk了还怎么用delphi
    用c的
      

  3.   

    噢,我也是这样想的,编写个.sys来接管win的驱动层及文件层,来管理自定义的软件
      

  4.   

    生成NET组件,再调用NET组件。
      

  5.   

    编写个.sys来接管win的驱动层及文件层,来管理自定义的软件
      

  6.   

    文件系统过滤驱动基础知识
    一、何谓文件系统过滤驱动?
         文件系统过滤驱动是一种可选的,为文件系统提供具有附加值功能的驱动程序。文件系统过滤驱动是一种核心模式组件,它作为Windows NT执行体的一部分运行。
         文件系统过滤驱动可以过滤一个或多个文件系统或文件系统卷的I/O操作。按不同的种类划分,文件系统过滤驱动可以分成日志记录、系统监测、数据修改或事件预防几类。通常,以文件系统过滤驱动为核心的应用程序有防毒软件、加密程序、分级存储管理系统等。
    二、文件系统过滤驱动并不是设备驱动
         设备驱动是用来控制特定硬件I/O设备的软件组件。例如:DVD存储设备驱动是一个DVD驱动。
         相反,文件系统过滤驱动与一个或多个文件系统协同工作来处理文件I/O操作。这些操作包括:创建、打开、关闭、枚举文件和目录;获取和设置文件、目录、卷的相关信息;向文件中读取或写入数据。另外,文件系统过滤驱动必须支持文件系统特定的功能,例如缓存、锁定、稀疏文件、磁盘配额、压缩、安全、可恢复性、还原点和卷装载等。
         下面两部分详细的阐述了文件系统过滤驱动和设备驱动之间的相似点与不同点。
    1、文件系统过滤驱动同设备驱动的相似点:
    下列部分描述了Windows操作系统中文件系统过滤驱动和设备驱动之间的相似点:
    (1)、类似的结构
         类似于设备驱动,文件系统过滤驱动有着属于自己的DriverEntry、Dispatch和I/O组件例程。文件系统过滤驱动同设备驱动一样调用许多相同的系统核心例程,它们都会过滤发送给它们所关联的设备的I/O请求。(2)、类似的功能:
         文件系统过滤驱动和设备驱动都是I/O子系统的组成部分,因此它们都接收和作用于I/O请求包(IRP)。
         类似于设备驱动,文件系统过滤驱动同样可以创建它们自己的IRP并将该IRP发送到低层驱动。
         这两种驱动均可以通过注册回调函数来接收多种系统事件的通知。(3)、其它类似点:
         同设备驱动类似,文件系统过滤驱动可以接收传入的I/O控制码(IOCTLs)。而且,文件系统过滤驱动还可以接收和定义文件系统控制码(FSCTLs)。
         同设备驱动类似,文件系统过滤驱动可以被配置为在系统引导过程中加载或者在系统启动过程完成后加载。
    2、文件系统过滤驱动同设备驱动之间的不同点:
         下例部分描述了文件系统过滤驱动同设备驱动之间的不同点:
         (1)、无需电源管理
         由于文件系统过滤驱动并不是真正的设备驱动,而且它们不需要直接控制硬件设备,因此它们并不接收IRP_MJ_POWER请求。(电源管理IRP将直接发送到存储设备堆栈中。但是,在非常罕见的情况下,文件系统过滤驱动有可能会影响到电源管理。)由此,文件系统过滤驱动并不注册IRP_MJ_POWER相关例程,它们也不会调用PoXxx例程。
         (2)、非WDM
         文件系统过滤驱动并不是WDM驱动程序,WDM驱动模型仅适用于设备驱动。     (3)、没有AddDevice或StartIo例程
         由于文件系统过滤驱动并不是设备驱动,而且它们并不直接控制硬件设备,因此它们没有AddDevice或StartIo例程。     (4)、创建不同的设备对象
         虽然文件系统过滤驱动和设备驱动均需要创建设备对象,但是它们所创建的设备对象的种类和数量都是不同的。
         设备驱动创建物理和功能设备对象来描述设备。即插即用(PnP)管理器将构建一个设备树来存放所有由设备驱动所创建的设备对象。文件系统过滤驱动所创建的设备对象,并不包含在这个设备树中。
         文件系统过滤驱动并不创建物理或功能设备对象,它们创建控制设备对象和过滤设备对象。控制设备对象对系统和用户模式应用程序提供过滤驱动的描绘。过滤设备对象执行对指定文件系统或卷的实际过滤工作。文件系统过滤驱动通常创建一个控制设备对象和多个过滤设备对象。     (5)、其它不同点:
         由于文件系统过滤驱动并不是设备驱动,因此他们将不会执行直接内存访问(DMA)。
         与设备过滤驱动不同,设备过滤驱动可以附加到目标设备功能驱动的上层和下层,文件系统过滤驱动仅能附加到目标文件系统驱动的上层。因此在设备驱动队列中,文件系统仅能进行上层过滤而无法进行下层过滤。
    三、安装文件系统过滤驱动
        对于Windows XP和后续操作系统来说,可以通过INI文件或安装应用程序来安装文件系统过滤驱动(对于Windows 2000和更早的操作系统,过滤驱动通常通过服务控制管理器Service Control Manager来进行安装)。
    四、初始化文件系统过滤驱动
    与设备驱动类似,文件系统过滤驱动也使用DriverEntry例程进行初始化工作。在驱动程序加载后,加载驱动相同的组件将通过调用驱动程序的 DriverEntry例程来对驱动程序进行初始化工作。对于文件系统过滤驱动来说,加载和初始化过滤驱动的系统组件为I/O管理器。
      

  7.   

    http://msdn.microsoft.com/en-us/library/ff540382(v=VS.85).aspx
      

  8.   

    有一个叫windows内核安全编程的书,你可以去看
      

  9.   

    Windows内核情景分析-采用开源代码ReactOS(上册).pdf
    Windows内核情景分析-采用开源代码ReactOS(下册).pdf
    寒江独钓——Windows内核安全编程.pdf
    Windows内核原理与实现.pdf
    我的基础很浅,不知如何入门呀
      

  10.   

    寒江独钓——Windows内核安全编程.pdf
    这个是入门的,顺着看就行
      

  11.   

    另外以前网上有本流传的NT系统技术内幕,不知道有没有中文版的,那本书也是讲windows文件过滤驱动和内核架构的
    Delphi只能加载这个驱动,内核态的东西你在用户态显示出来实在是麻烦,驱动输出的消息一般只能用Debugview才能看到,除非你自己改代码
      

  12.   

    看着有点晕啊~~~~~
    如果是这个的话,那就是你得写相应驱动,楼上都有说,你装了WDK,那就WDK写... C或C++ ,用Delphi写貌似很有难度吧....你楼顶又说这个 ,这是啥意思?
    是Delphi 与 .sys 通信么?? 如果是的话,那就先安装好.sys ,然后 ReadFile ,WriteFile ,IOCTL等方式来获取.sys中的信息 或 向.sys写入信息 ,那这个就是应用层程序的事情了,Delphi、C、C++随便你...还是说 ,是Delphi程序调用 .sys 中的 某函数 ,能够让.sys在屏幕上显示出“Hello World!” ??那这个没玩过,就不瞎说了...
      

  13.   

    Delphi程序调用 .sys 中的 某函数 ,能够让.sys在屏幕上显示出“Hello World!” ??那这个没玩过,就不瞎说了...
    ------------------------------------------------------------
    我想通过程序来对Notepad.exe程序生成的所有文件,管理其操作.......
      

  14.   

    那应该就是 8楼所说的了 ,C/C++做起来比较方便 ,delphi没用过 ,据说是短处...
      

  15.   

    我不会用VC/C#,想在学习这个VC/C#来编写这个
    也不知如何下手,还请多多赐教
      

  16.   


    Delphi编程乐园
    群号:32307764