WINCE6.0驱动问题

andylao62 2008-10-20 05:27:30
有篇文章(具体原文在那,我找不到了)提到在FLASH驱动中函数
BOOL FMD_OEMIoControl(DWORD dwIoControlCode, PBYTE pInBuf, DWORD nInBufSize, PBYTE pOutBuf, DWORD nOutBufSize, PDWORD pBytesReturned)
{
.........
.........
case 0xff123456:
FMD_ReadSector(..); //调用读Sector函数
break;
case 0xff654321:
FMD_WriteSector(..); //调用写Sector函数
break;
case 0xff123457:
FMD_EraseBlock(..); //调用擦除Block函数
break;
.........
.........
}
应用程序
hFirm = CreateFile(TEXT("DSK1:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if(hFirm == INVALID_HANDLE_VALUE)
{
printf("Open Flash Device Failed");
return 0;
}
iRet = DeviceIoControl(hFirm, 0xff123456, para1, para2, para3, para4, para5, para6); //Read Flash Sector
iRet = DeviceIoControl(hFirm, 0xff654321, para1, para2, para3, para4, para5, para6); //Write Flash Sector
iRet = DeviceIoControl(hFirm, 0xff123457, para1, para2, para3, para4, para5, para6); //Erase Flash Block

在WINCE6.0中不能这么用,为什么?
...全文
112 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
andylao62 2008-10-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hzdysymbol 的回复:]
如果你的驱动是由Storage Manager加载的话,你应该调用OpenStore来打开,获得HANDLE
如果是由Device Manager加载的话,应该可以用CreateFile来打开
但这跟CE5.0还是6.0有关吗?
[/Quote]
http://blog.csdn.net/nanjianhui/archive/2008/03/19/2196466.aspx
原文在这里
谢谢大家的支持
我自己再弄一下
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hzdysymbol 的回复:]
如果你的驱动是由Storage Manager加载的话,你应该调用OpenStore来打开,获得HANDLE
如果是由Device Manager加载的话,应该可以用CreateFile来打开
但这跟CE5.0还是6.0有关吗?
[/Quote]

高手
xqhrs232 2008-10-20
  • 打赏
  • 举报
回复
可以像文章里面说的那样用的,我试过,成功过!估计你的IOCTL宏没有定义好.他说的只是一个示意的数字,你不能拿来就用啊!要自己去定义的!
hzdysymbol 2008-10-20
  • 打赏
  • 举报
回复
如果你的驱动是由Storage Manager加载的话,你应该调用OpenStore来打开,获得HANDLE
如果是由Device Manager加载的话,应该可以用CreateFile来打开
但这跟CE5.0还是6.0有关吗?
andylao62 2008-10-20
  • 打赏
  • 举报
回复
如果不行,那又该怎么写好呢?

19,503

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧