阅读:968回复:1
驱动层和应用层数据传输的问题,请教各位大哥!
驱动层代码:
将数据拷贝到全局缓冲区中: KeEnterCriticalRegion(); ExAcquireResourceSharedLite(&g_BufferResource2, TRUE); RtlCopyMemory( g_chBuffer2, FileName,Len); g_nBytesCount2 += Len; ExReleaseResourceLite(&g_BufferResource2); KeLeaveCriticalRegion(); 将数据复制到输出缓冲区: KeEnterCriticalRegion(); ExAcquireResourceSharedLite(&g_BufferResource2, TRUE); RtlCopyMemory( (char* )Irp->AssociatedIrp.SystemBuffer, g_chBuffer2,g_nBytesCount2); ExReleaseResourceLite(&g_BufferResource2); KeLeaveCriticalRegion(); 应用层的代码: char inPara[4096] =""; DWORD dwInBytes = 4; char outPara[4096]=""; DWORD dwOutBytes = 4; DWORD BytesReturned; DeviceIoControl( m_hDriver,IOCTL_KHOOK_GETDATA, inPara, dwInBytes, outPara, dwOutBytes, &BytesReturned,NULL); 说明:部分代码省略了。 问题是,前几次读取数据都没有问题,可是多读几次就蓝屏重启了,不知道是什么原因? |
|
沙发#
发布于:2004-06-23 13:12
use softice to debug
|
|
|