阅读:1120回复:3
一个简单的问题
我已在IRP_MJ_READ下获得读取到的文件数据,在Irp->MdlAddress里可以看到,请问我该如何将它取出来?即:
加密简单过程: a.得到Windows传下来的Buffer Address, if (Irp->MdlAddress) { SysDataBuf = MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority); } else { SysDataBuf = Irp->UserBuffer; } b.保存明文SysDataBuf 在SysDataBufFirst c.用你强大的算法加密SysDataBuf -->> MyBuf d.把MyBuf Copy到 SysDataBuf, e.IoCallDriver 把密文向下传,写入HardDisk。 f.恢复内存的明文 RtlCopyMemory(SysDataBuf,SysDataBufFirst, ulWriteLen);. 其中, b.保存明文SysDataBuf 在SysDataBufFirst 该怎么做?谢谢指教 |
|
沙发#
发布于:2007-04-20 09:46
没人回答吗,是不是我说的不清楚?
我在IRP_MJ_READ完成例程里写的是: PVOID DataBuf = DataBuf = Irp->UserBuffer; if(Irp->MdlAddress != NULL) { DataBuf = MmGetSystemAddressForMdlSafe(Irp->MdlAddress,NormalPagePriority); } 但是我在softice 里watch DataBuf 时softice说变量未定义.display也看不到内容,请问这是为什么? |
|
板凳#
发布于:2007-04-26 18:24
DataBuf定义成全局变量,试试?
|
|
地板#
发布于:2007-04-26 21:44
PVOID DataBuf = DataBuf = Irp->UserBuffer;
为什么写两个DataBuf呢? PVOID DataBuf; DataBuf = Irp->UserBuffer; 试一下 |
|