如何用Delphi编写的EasySYS写驱动程序的问题(希望帖子推荐)
EasySYS写驱动程序的高级应用1、sys文件就是一个dll文件
2、EasySYS写驱动程序 生成的是.sys格式文件
3、框架很明细
4、object pascal也在EasySYS中实用
5、过程定义/函数定义与Delphi内的一样
6、参数定义...............
EasySYS写驱动程序的高级应用1、sys文件就是一个dll文件
2、EasySYS写驱动程序 生成的是.sys格式文件
3、框架很明细
4、object pascal也在EasySYS中实用
5、过程定义/函数定义与Delphi内的一样
6、参数定义...............
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"编译器:编译完成
爱好编程的高手,顶顶呀>>>>>>>>>>
Delphi写驱动不是因为EasySYS,而是因为rmcoff,这个工具能把Delphi的中间文件omf转换成能被微软link识别的PE coff格式,所以才能编译驱动
举个不恰当的例子,EasySYS只是个饭店的服务生,你只是把你的信息反馈给厨师(kmdkit4d或者WDK),你指望一个服务生去炒菜实在是难为人了
至于PE格式,如果你不了解的话三言两语说不清楚……建议你自己了解下PE格式,还有中间文件的格式(omf,coff之类)
也可能提供一些实例程序.......
或者vc+driverstdios+ddk