阅读:2282回复:4
调式 寒江的实例代码捕获irp问题
小弟最近尝试调式 寒江的实例代码,有几个地方很疑惑,希望大家帮帮忙:
1.点击右键时候 能够一次性捕获到 DriverObject->MajorFunction[IRP_MJ_CREATE]、DriverObject- >MajorFunction[IRP_MJ_CLOSE] 、 DriverObject->MajorFunction[IRP_MJ_READ]、 DriverObject- >MajorFunction[IRP_MJ_WRITE] ,并且判断进程时候不是notepad.exe。 2.我想先用notepad.exe打开一个1.txt文件,好吧,现在有notepad.exe进程。但还是一次性捕获到 MajorFunction[IRP_MJ_CREATE]、[IRP_MJ_CLOSE] 、 [IRP_MJ_READ]、 [IRP_MJ_WRITE] 。最头疼的是 根据getcurrentirp(Irp)->PIO_STACK_LOCATION->FileName.Buffer=null; 个人猜测是在点击打开文件还 没选路径的时候irp就来了 ,没选择文件,所以为空。 3.打开文件后,无论是写、保存、关闭,都没irp来了。 希望大家能够指点下小弟问题出在哪里。 |
|
禁止发言
|
沙发#
发布于:2011-02-24 13:30
用户被禁言,该主题自动屏蔽! |
板凳#
发布于:2011-03-01 14:46
回 1楼(wanghui219) 的帖子
先謝謝你的幫助。对于问题2,还是不明白。我是在IRP_MJ_READ 下调试的irp,FileName.Buffer=null, PIO_STACK_LOCATION PIo_stack_location = IoGetCurrentIrpStackLocation(Irp); PSFILTER_DEVICE_EXTENSION DevExt = (PSFILTER_DEVICE_EXTENSION) DeviceObject->DeviceExtension; PFILE_OBJECT file = PIo_stack_location->FileObject; 这几天看前辈们帖子,问题3是刷缓存吗? |
|
地板#
发布于:2011-03-01 14:53
脑残了,刚看到说PFILE_OBJECT 应该在IRP_MJ_CREATE下捕获.........
|
|
地下室#
发布于:2011-05-14 22:36
学习了
|
|