jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
阅读:2379回复:7

请教大家个IOcontrol的问题

楼主#
更多 发布于:2007-07-09 09:49
再nandflash的驱动里有个FMD_iocontril的函数,我现在想在OEM_poweroff 这个函数里调用一下FMD_iocontril,请问一下怎么实现?

我现在是调用KernelIOcontrol();然后参数code传FMD对应的code,可是好像没起作用。
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-07-09 13:21
试试在fmd.h中添加对FMD_iocontril函数的定义,然后再在你调用的文件中include fmd.h
努力! 成功就在不远处....
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-07-09 17:07
我发现选系统开始菜单的suspend后,根本就不会执行OEM_poweroff ,这是为什么?
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-07-12 07:09
不知楼主为什么会这样的需求,这个从软件结构上来说是要严格禁止的.

点SUSPEND调不到OEM_POWEROFF,看看代码是不是没有链接上啊.
学海无涯
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-07-12 10:19
链接是链接上了,点SUSPEND,报了个错,但是没走进OEM_POWEROFF,正常的话是应该走进去吗?

还有为什么这么做是禁止的?iocontrol不就是为特殊需求提供的自由接口吗?
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-07-12 21:18
驱动程序的IOCTL在DEVICE.EXE之外调用时应该通过CreateFile得到一个句柄,然后用这个句柄去调用.
而不是直接链接那个函数.

正常情况下,点SUSPEND会调用到OEMPowerOff,既然有错,先把错误解决掉可能就好了.
学海无涯
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-07-13 09:27
它报的错是:ERROR:power handler function yield to low priority thread.
这个应该是内核报的错吧,我没有给power handle 开线程。
版主帮忙解释下这是什么原因?

还有就是kernelIOcontrol,OEMIOcontrol不是不需要句柄吗?
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-07-14 18:31
你把板上连的所有能去掉的设备都去掉试试.

那两个函数是不需要HANDLE的.
学海无涯
游客

返回顶部