6464|19

85

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WINCE驱动dll加载问题 [复制链接]

我在移植SC2440驱动cdev.dll,它在注册表里的项如下。但是它的入口函数DllEntry在process attach之后立刻就process detach了,初始化函数DEV_Init没有执行,DEV_Init函数在开头用RETAILMSG打印一串信息,在串口上没看到输出。
在[HKEY_LOCAL_MACHINE\Drivers\BuiltIn]下确实已经看到了这个cdev.dll,
但在在[HKEY_LOCAL_MACHINE\Drivers\Active]下没看到这个DLL。
设备管理器是不是在启动时加载[HKEY_LOCAL_MACHINE\Drivers\BuiltIn]下的所有DLL吗?
网上看到有人也遇到过类似的问题,但没有说是怎样解决的

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\cdev]
   "Prefix"="DEV"
   "Dll"="cdev.dll"
   "Index"=dword:1
   "Order"=dword:1
此帖出自WindowsCE论坛

最新回复

我也遇到这个问题了,微软还真搞笑,前缀非要3个字符,要不是看了这个帖子不知道又要被折磨多久呢, 谢谢啊!  详情 回复 发表于 2009-10-20 18:11
点赞 关注
 

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
可能是驱动提供的接口函数不规范或者不全吧,设备管理器不认为你的驱动是一个标准流驱动.
不过我做驱动很少加DllEntry入口.
此帖出自WindowsCE论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
def 文件导出流接口函数了吗?
此帖出自WindowsCE论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

4
 
def文件已经导出:
cdev.def文件:

LIBRARY CDEV
EXPORTS
        DEV_Close
        DEV_Deinit
        DEV_Init
        DEV_IOControl
        DEV_Open
        DEV_PowerDown
        DEV_PowerUp
        DEV_Read
        DEV_Seek
        DEV_Write
此帖出自WindowsCE论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 
流接口函数是:
BOOL DEV_Close(DWORD hOpenContext);
BOOL DEV_Deinit(DWORD hDeviceContext);
DWORD DEV_Init(DWORD dwContext);
DWORD DEV_Open(DWORD hDeviceContext, DWORD AccessCode, DWORD ShareMode);
void DEV_PowerUp(DWORD hDeviceContext);
void DEV_PowerDown(DWORD hDeviceContext);
DWORD DEV_Read(DWORD hOpenContext, LPVOID pBuffer, DWORD Count);
DWORD DEV_Seek(DWORD hOpenContext, long Amount, DWORD Type);
DWORD DEV_Write(DWORD hOpenContext, LPCVOID pSourceBytes, DWORD NumberOfBytes);

BOOL DEV_IOControl(DWORD hOpenContext,
                                   DWORD dwCode,
                                   PBYTE pBufIn,
                                   DWORD dwLenIn,
                                   PBYTE pBufOut,
                                   DWORD dwLenOut,
                                   PDWORD pdwActualO);
流接口函数的内部实现已经被我改为非常简单的打印信息,返回值,可是还是不能调用DEV_Init函数,启动后cdev.dll显示没有Active;
此帖出自WindowsCE论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

6
 
DEV_Init


这个函数不要返回 0,返回 0 就不会加载驱动,你看看。
此帖出自WindowsCE论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

7
 
我已经吧我的init函数改掉了,不进行任何操作,return 1,可是串口看不到打印信息,应该是没有调用这个函数就进入到 dllentry函数detach了
DWORD DEV_Init(DWORD dwContext)
{

  RETAILMSG(1,(TEXT("CDEV: TESTDEV_Init----\r\n")));
  RETAILMSG(1,(TEXT("CDEV: TESTDEV_Init----\r\n")));
  RETAILMSG(1,(TEXT("CDEV: TESTDEV_Init----\r\n")));
  RETAILMSG(1,(TEXT("CDEV: TESTDEV_Init----\r\n")));
  return 1;
}
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
这个问题困扰了2天了,郁闷
此帖出自WindowsCE论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

9
 
自己顶
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

10
 
init函数参数不对 应该有两个参数 LPCTSTR pContext,LPCVOID lpvBusContext
此帖出自WindowsCE论坛
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

11
 
我看到的资料init函数的原型都是一个参数啊
此帖出自WindowsCE论坛
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

12
 
会不会是开发板的BSP有问题。
此帖出自WindowsCE论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

13
 
用 Depends 查看流函数到底导出了没有?


如果不会看,那么把 dll 文件发给我


zaodt.ms@gmail.com
此帖出自WindowsCE论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

14
 
已经发到你的邮箱;感觉是有问题的。
此帖出自WindowsCE论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

15
 
看到了,可能问题已经找到了,如下:


我用 Depend 看了你的 dll 文件,内容如下:

======================

TEST_Close
TEST_Deinit
TEST_IOControl
TEST_Init
TEST_Open
TEST_PowerDown
TEST_PowerUp
TEST_Read
TEST_Seek
TEST_Write

======================

而你在注册表的前缀为:

"Prefix"="DEV"


可能就是这个问题引起的!
此帖出自WindowsCE论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

16
 
现在都已经改成TEST了,昨天刚刚改的啊
此帖出自WindowsCE论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

17
 
现在的def文件我已经改了,昨天晚上重写的驱动

LIBRARY CDEV
EXPORTS
TEST_Close
TEST_Deinit
TEST_Init
TEST_IOControl
TEST_Open
TEST_PowerDown
TEST_PowerUp
TEST_Read
TEST_Seek
TEST_Write
此帖出自WindowsCE论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

18
 
前缀使用 3 个大写字母,你改为 TES_Init 试试看;

记着注册表前缀也要改成一样的。
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

19
 
果然是这个问题,试了一下,结贴了
此帖出自WindowsCE论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

20
 
我也遇到这个问题了,微软还真搞笑,前缀非要3个字符,要不是看了这个帖子不知道又要被折磨多久呢,
谢谢啊!
此帖出自WindowsCE论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表