kucy_zhou@163.c
驱动牛犊
驱动牛犊
  • 注册日期2003-11-26
  • 最后登录2005-11-04
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:979回复:0

ds共享内存问题

楼主#
更多 发布于:2004-09-17 14:09
我想在驱动中分配10k的内存然后映射到应用程序,可是不知为什么得到的数据却不对,而在驱动中看到数据是对的,不明白怎么回事?

我的应用程序映射部分如下所示:
if (!DeviceIoControl(hDevice,P9054_IOCTL_801, bufInput,
IOCTL_INBUF_SIZE,
&DataBuf,
sizeof(DataBuf),
&nOutput, NULL)
  )
{
printf("ERROR: DeviceIoControl returns %0x.", GetLastError());
Exit(1);
}
if((fp=fopen("data","a+"))==NULL)
{
   printf("file not open");
   Exit(1);
}
iNum=fwrite(&DataBuf,4,1024,fp);
fclose(fp);

驱动部分如下所示:
  m_pBuffer = new (NonPagedPool) long [BUFFER_SIZE];
  m_pBuffer= (LONG *)((LONG)m_pBuffer&0xfffff000 + 0x1000);
  m_Mdl = new (NonPagedPool) KMemory(m_pBuffer, BUFFER_SIZE*4,FALSE, FALSE, NULL);
    
  m_Mdl->SetPageArray();
 
  UserSpaceAddress=MmMapLockedPages(dMdl, UserMode);

   I.UserBuffer()=UserSpaceAddress;

请大家帮帮忙,特别着急!!!!!
不知道问题出在那。




游客

返回顶部