不要让BIB文件成为加载驱动的拦路虎
2010-11-10 16:11
218 查看
//=====================================================================
//TITLE:
// 不要让BIB文件成为加载驱动的拦路虎
//AUTHOR:
// norains
//DATE:
// Wednesday 10-November-2010
//Environment:
// Windows CE 6.0
// TCC8900
//=====================================================================
最近在将WinCE 5.0驱动移植到WinCE 6.0时,发现了一件很匪夷所思的怪事,就是驱动根本没有被加载。从输出的串口消息看出,XXX_Init函数根本就没有被调用。难道是系统将驱动给忽略掉了?虽然这可能性不大,但还是要确认一下。所以,就手动调用ActivateDeviceEx试试,结果返回为FALSE。用GetLastError查看错误值,为2,查看Error Lookup,提示系统找不到指定的文件。
这就奇怪了,通过ActiveSync在Windows目录实实在在看到文件了啊?不信邪了,将驱动注册表的DLL换个名字,然后将编译好的驱动也换个名字,拷贝到Windows目录,然后调用ActivateDeviceEx,结果居然成功加载了!
改了名字就能成功加载,首先可以断定问题绝对不是出在代码上,也不会出在编译阶段,那么会在哪里呢?和文件有关的,莫非是BIB文件?
打开我驱动下的bib文件,内容如下:
MODULES
EncSecMgr.dll $(_FLATRELEASEDIR)/Enc.dll NK
这语句看起来应该没有什么问题,因为在WinCE 5.0是一切正常的。不过,突然想起来,WinCE 6.0的内存机制已经变动很大,会不会是因为DLL没有重定位的原因?想到这里,将该语句添加一个K属性,如:
MODULES
EncSecMgr.dll $(_FLATRELEASEDIR)/Enc.dll NK K
烧录系统,测试,XXX_Init 函数被调用,输出了相应的串口信息。OK,一切正常!
//TITLE:
// 不要让BIB文件成为加载驱动的拦路虎
//AUTHOR:
// norains
//DATE:
// Wednesday 10-November-2010
//Environment:
// Windows CE 6.0
// TCC8900
//=====================================================================
最近在将WinCE 5.0驱动移植到WinCE 6.0时,发现了一件很匪夷所思的怪事,就是驱动根本没有被加载。从输出的串口消息看出,XXX_Init函数根本就没有被调用。难道是系统将驱动给忽略掉了?虽然这可能性不大,但还是要确认一下。所以,就手动调用ActivateDeviceEx试试,结果返回为FALSE。用GetLastError查看错误值,为2,查看Error Lookup,提示系统找不到指定的文件。
这就奇怪了,通过ActiveSync在Windows目录实实在在看到文件了啊?不信邪了,将驱动注册表的DLL换个名字,然后将编译好的驱动也换个名字,拷贝到Windows目录,然后调用ActivateDeviceEx,结果居然成功加载了!
改了名字就能成功加载,首先可以断定问题绝对不是出在代码上,也不会出在编译阶段,那么会在哪里呢?和文件有关的,莫非是BIB文件?
打开我驱动下的bib文件,内容如下:
MODULES
EncSecMgr.dll $(_FLATRELEASEDIR)/Enc.dll NK
这语句看起来应该没有什么问题,因为在WinCE 5.0是一切正常的。不过,突然想起来,WinCE 6.0的内存机制已经变动很大,会不会是因为DLL没有重定位的原因?想到这里,将该语句添加一个K属性,如:
MODULES
EncSecMgr.dll $(_FLATRELEASEDIR)/Enc.dll NK K
烧录系统,测试,XXX_Init 函数被调用,输出了相应的串口信息。OK,一切正常!
相关文章推荐
- 不要让BIB文件成为加载驱动的拦路虎
- 两个相同VID PID的不同设备加载同一个KO文件中的不同驱动
- arm LED驱动小程序 可以通过modprobe 加载ko文件
- 更改wince注册表和bib文件的参数要到BSP下修改,不要修改工程文件下面的
- 驱动加载到proc文件下
- linux 内核驱动动态加载和静态加载和 .config makefile kconfig 三个文件之间关系
- Windows驱动_文件系统微小过滤驱动之二驱动的安装和加载
- 动态监控驱动sys、动态链接库dll、可执行文件exe加载
- 解决“Visual Studio 要求设计器使用文件中的第一个类。移动类代码使之成为文件中的第一个类,然后尝试重新加载设计器。”方法
- 驱动加载INF文件解析(一)
- 驱动加载INF文件解析(二)
- 通过HookNtCreateSection 动态监控驱动sys、动态链接库dll、可执行文件exe加载
- 第七章:在Spark集群上使用文件中的数据加载成为graph并进行操作(2)
- 解决“Visual Studio 要求设计器使用文件中的第一个类。移动类代码使之成为文件中的第一个类,然后尝试重新加载设计器。”方法
- 通过HookNtCreateSection 动态监控驱动sys、动态链接库dll、可执行文件exe加载
- 重构机房拦路虎(一)- 未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件
- Windows x64免按F8加载驱动文件
- 第七章:在Spark集群上使用文件中的数据加载成为graph并进行操作(3)
- 通过HookNtCreateSection 动态监控驱动sys、动态链接库dll、可执行文件exe加载
- linux 驱动 编译加载 , 程序搬移到目标板,驱动源码和头文件位置