liaomingwu
驱动牛犊
驱动牛犊
  • 注册日期2003-06-28
  • 最后登录2008-02-17
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:968回复:1

驱动层和应用层数据传输的问题,请教各位大哥!

楼主#
更多 发布于:2004-06-23 11:56
驱动层代码:
将数据拷贝到全局缓冲区中:
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);

说明:部分代码省略了。

问题是,前几次读取数据都没有问题,可是多读几次就蓝屏重启了,不知道是什么原因?
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-06-23 13:12
use softice to debug
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
游客

返回顶部