能力值:
( LV2,RANK:10 )
|
-
-
2 楼
[QUOTE=六月;553217]大大好.我不知道为什么一直返回0
我在驱动的入口函数这样定义了.
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL]=abc;
---------------------------------------------ABC函数我什么也...[/QUOTE]
对了忘记说了
CreateFileA函数的取法是不是不对.
CreateFileA(“C:\WINDOWS\system32\drivers\ffddj.sys”,GENERIC_READ_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)
是不是驱动的路径不该这样?可返回的不是0,是204!
|
能力值:
( LV12,RANK:450 )
|
-
-
3 楼
你还是好好对照驱动通信的例子看看吧……
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
你用DeviceIoControl调用驱动时,函数abc中的IoStatus.Information里面放的实际上是结果的长度,所以你想把12取出来当然会失败!
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
谢谢楼上2位,问题发现主要自己没好好去了解驱动!
这个好象没关系的,这里是可以写实际操作多少字节,如果没有操作可以随便设置个0也可以的,
昨天主要一直没有创建设备和给设备取别名,发现用CreateFile打不开设备,在R3下识别不到内核模式下的驱动名,后来才发现////.//name这样才可以打开设备,研究了2天了,终于有点弄懂了派遣函数了!
不过昨天发现,IRP_MJ_CLOSE这个IRP处理我已经指向自己的函数了,当R3调用CloseHandle,关闭CreateFile创建的句柄的时候,这个IRP不会被派到我指的函数中...
不知道大家是否有碰到过.还是我弄错了.还是要用IRP_MJ_CLEANUP来派遣呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
本来就不会。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
啊?那IRP_MJ_CLOSE这个IPR在什么情况下才会被派遣自定义的函数呢?
|
能力值:
( LV9,RANK:1210 )
|
-
-
8 楼
3楼不是让你先看书么? 错误在CreateFile打开的是文件,不是设备
|
能力值:
(RANK:650 )
|
-
-
9 楼
向欧阳大哥学习
|
能力值:
( LV8,RANK:130 )
|
-
-
10 楼
向西毒学 习。。。。
|
|
|