joyfly
驱动小牛
驱动小牛
  • 注册日期2002-07-02
  • 最后登录2009-09-17
  • 粉丝0
  • 关注0
  • 积分319分
  • 威望32点
  • 贡献值0点
  • 好评度31点
  • 原创分0分
  • 专家分0分
阅读:1559回复:2

WinCE中用stream-interface模式开发PCMCIA(类似串口)驱动,Com_Open()返回值与在application中调用CreateFile() API的返回值不一样?

楼主#
更多 发布于:2002-08-16 10:29

在WinCE中用stream-interface模式开发串口的驱动程序时,在application中CreateFile() API,系统将自动调用驱动程序中的Com_Open(),Com_Open的返回值应该作为CreateFile()的返回值
我的程序在调用Com_Init()时是正确的,但是在调用Com_Open()之前却有一个ERROR_CALL_NOT_IMPLEMENTED的错误(错误号为120),为什么会这样?会不会是firmware和CardService与Client driver之间有什么问题?

而且现在我得到的Com_Open()的返回值和CreateFile()的返回值不一样。导致后面WriteFile() API调不到驱动程序中的Com_Write(),但是ColseFile() API却能够调用到驱动的Com_Close(),但是可能是因为把CreateFile()的返回值作为传入句柄,而这个值是和Com_Open()返回的不一样,所以Com_Close()会死掉,并且产生一个ERROR_TOO_MANY_OPEN_FILES的错误(错误号为4)。

有没有人有什么意见可以提供给我?
谢谢!
www.cnemb.com
big_chen
驱动牛犊
驱动牛犊
  • 注册日期2004-06-10
  • 最后登录2006-10-22
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-10-19 15:01
Douglas Boling 的《Windows CE 程序设计(第三版)》的原话如下:

The open context value returned by the Open function is NOT the handle returned to the application when the CreateFile function returns.

可见流接口通过文件系统的转换就是如此呀。

joyfly
驱动小牛
驱动小牛
  • 注册日期2002-07-02
  • 最后登录2009-09-17
  • 粉丝0
  • 关注0
  • 积分319分
  • 威望32点
  • 贡献值0点
  • 好评度31点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-22 10:56
谢谢!

2年前的问题了,呵呵:)
www.cnemb.com
游客

返回顶部