bxn77
驱动牛犊
驱动牛犊
  • 注册日期2003-02-19
  • 最后登录2003-03-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1204回复:3

为什么我从驱动中只能读7个字,并且系统会在读数据后,过一会会突然重起

楼主#
更多 发布于:2003-03-11 14:56
应用程序为:if (!DeviceIoControl(hDevice,
CSR_READ,
NULL,
0,
bufOutput,
14,
&nOutput,
NULL)
  )
驱动程序为:
PUSHORT pBuffer = (PUSHORT) I.IoctlBuffer();
ULONG   Count = I.IoctlOutputBufferSize (CURRENT) ;
// Requested read size
ULONG   StartAddress= I.IoctlInputBufferSize(CURRENT);
m_MemoryRange0.inw(StartAddress,pBuffer,Count);

最新喜欢:

mapoflmapofl
bxn77
驱动牛犊
驱动牛犊
  • 注册日期2003-02-19
  • 最后登录2003-03-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-11 15:00
要求是读14个字,但实际读了7个字,我是一个菜鸟,望哪位大侠帮帮我啊
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-11 23:16
你的用户态中(应用程序)定义的“14”可能是byte,而不是word,你改为28看看,或者用softice跟进去看看驱动中到底读了多少数据
早起早睡 精神百倍
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-12 11:46
应用程序为:if (!DeviceIoControl(hDevice,
CSR_READ,
NULL,
0,
bufOutput,
14,
&nOutput,
NULL)
  )
驱动程序为:
PUSHORT pBuffer = (PUSHORT) I.IoctlBuffer();
ULONG   Count = I.IoctlOutputBufferSize (CURRENT) ;
// Requested read size
ULONG   StartAddress= I.IoctlInputBufferSize(CURRENT);
m_MemoryRange0.inw(StartAddress,pBuffer,Count);
 

我觉得m_MemoryRange0.inw(StartAddress,pBuffer,Count);里的Count是要读的字的个数,而I.IoctlOutputBufferSize (CURRENT)是字节数,所以ULONG   Count = I.IoctlOutputBufferSize (CURRENT) ;应改为:ULONG   Count = I.IoctlOutputBufferSize (CURRENT) /2;,你试试,看对不对!!
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
游客

返回顶部