smallcat0008
驱动牛犊
驱动牛犊
  • 注册日期2004-08-30
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分504分
  • 威望62点
  • 贡献值0点
  • 好评度38点
  • 原创分0分
  • 专家分0分
阅读:1590回复:4

zhaock老大,帮我看看发送自己组建的包问题?

楼主#
更多 发布于:2005-07-26 17:16
  在IMD驱动中类似ndissuio的方法pEthHeader =(PETH_HEADER)MmGetSystemAddressForMdlSafe(pIrp->MdlAddress,NormalPagePriority);PETH_HEADER是和ndissuio中的结构相同,在应用程序中通过DeviceIoControl通知IMD,方式:METHOD_OUT_DIRECT,并且是同步方式。当驱动运行到pEthHeader =(PETH_HEADER)MmGetSystemAddressForMdlSafe(pIrp->MdlAddress,NormalPagePriority);或
pEthHeader =MmGetSystemAddressForMdlSafe(pIrp->MdlAddress,NormalPagePriority);机器就重启,为什么?
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-07-26 23:15
这么做,不应该有问题.你把应用程序调用DeviceIoControl的代码也贴上来看看,看看参数是不是写错了.
用ice调试一下,看看这个时候的irp->MdlAddress是不是0,如果是,就是参数的问题
smallcat0008
驱动牛犊
驱动牛犊
  • 注册日期2004-08-30
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分504分
  • 威望62点
  • 贡献值0点
  • 好评度38点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-27 09:24
if(!DeviceIoControl(m_hDevice,
              IO_GET_SENDPACKET_EVENT, //METHOD_OUT_DIRECT方式
              InputBuffer, //unsigned char InputBuffer[128],组建的数据包定义为数组
              128, //直接用128,包的长度实际不是128
              NULL,
              NULL,
              &dwReturn,
              NULL
              ))
使用SoftIce调试时,一开始F10就显示的是汇编语言,看不懂,怎么回事?
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2005-07-27 09:28
你这么做当然不对了,用METHOD_OUT_DIRECT,MdlAddress对应的是Outputbuffer,你OutputBuffer为NULL,MDLAddress就为NULL,你还直接引用MdlAddress,当然就崩溃了.把InputBuffer改成OutputBuffer,
就可以了.
riynivke
驱动牛犊
驱动牛犊
  • 注册日期2005-05-11
  • 最后登录2007-09-13
  • 粉丝0
  • 关注0
  • 积分67分
  • 威望11点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-08-02 10:54
各位牛哥,能不能说得详细一点,菜鸟们看不明白啊!
游客

返回顶部