阅读:931回复:2
关于驱动到应用程序的问题(共三个),请大牛们赐教!
驱动写好了生成了.sys文件,我不知道怎么在应用程序里应用他。
我是这们做的:(用的是delphi,因此没有LoadDeviceDriver函数,将其改了一下成C的语法) 调用API: sysfilename="d:\exam\example.sys"; hsc=OpenSCManager(NULL,NULL,SC_MANAGER_CREATE_SERVICE); hsv=CreateService(hsc, PChar(sysfilename), PChar(sysfilename),0, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_IGNORE, PChar(sysfilename), NULL, NULL,NULL, NULL, NULL); hdr:=createfile("\\\\.\\example",GENERIC_READ or GENERIC_WRITE,0,NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0); //这里的"\\\\.\\example"不知道是应该用设备名还是符号连接,不过我的这两个名是一样的,也不知道这样对不? DeviceIoControl(hdr, exam_setstates,NULL, 0, NULL, 0, nb, NULL ); 问题一:我是想用动态加载来调用驱动,是不是像上面的那样就可以了,而不需要把sys文件放到system32的drivers目录下,或者具体该怎么做,请赐教? 问题二:就是上面的注释那段,这里的"\\\\.\\example"不知道是应该用设备名还是符号连接,也不知道这样写是不是对的? 问题三:CTL_CODE这个宏我是这样展开的不知道对不:FILE_DEVICE_EXAM=0x00008501 CTL_CODE( FILE_DEVICE_EXAM, 0x02, METHOD_BUFFERED, FILE_ANY_ACCESS )=0x00008501*(2的16次方)+0x02*2*2+0*(2的14次方)=0x85010000+0x08+0=0x85010008? |
|
沙发#
发布于:2008-08-18 19:43
急啊,老牛们帮帮我吧,先谢谢了!
|
|
板凳#
发布于:2008-08-19 10:29
一两句话也将不清楚,参照Filemon源代码,完全符合你的要求,,,,
|
|