aaab01
驱动牛犊
驱动牛犊
  • 注册日期2002-03-12
  • 最后登录2008-07-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1566回复:4

关于驱动的调用问题!!

楼主#
更多 发布于:2003-12-20 10:01
跟据帮助写了个驱动,编译成.dll文件后,想在应用层调用。驱动函数包括:
XXX_Init()
XXX_Open()
XXX_Read()
XXX_Write()
XXX_Close()
XXX_IOControl
DllEntry()

修改了注册表添加这个dll,再将这个.dll下载到Pocket里后,再写一个应用程序调用它:
handle = CreateFile(L\"XXX\",x,x,x,x,x,x)
后再试着写
WriteFile(handle,(LPCVOID)&sss,1,&num,NULL);
结果发现写进去失败(XXX_Write()跟本没被调用)。

在驱动的7个函数里全部加上向串口打印的标志,用以叛断驱动何时被调用,结果发现在Pocket一启动时XXX_DllEntry()就运行(从结果看被调用二次),然后XXX_IOControl()一直被调用(约1~2秒钟一次),不停的向串口发东西。

所以我就搞不清楚,是不是OS不知道我提供了这些驱动函数?可我在source文件里指定了这几个函数啊。


另外还发现一个问题是CreateFile函数,比如
  hPort = CreateFile(L\"COM1\",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
无论我第一个参数是啥,比如L\"AAA\",L\"BBB\",这个函数返回都不会是NULL,真是郁闷。
angeon
禁止发言
禁止发言
  • 注册日期2003-01-09
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1416分
  • 威望7080点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-22 08:57
用户被禁言,该主题自动屏蔽!
bakerj
驱动牛犊
驱动牛犊
  • 注册日期2004-02-26
  • 最后登录2005-08-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-31 07:15
有没有办法在程序里面动态注册一个驱动?
哪里有例子啊?
programming is game
bakerj
驱动牛犊
驱动牛犊
  • 注册日期2004-02-26
  • 最后登录2005-08-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-08 04:12
偶试过了,动态加载失败,还是修改localmachine\driver\buildin,然后重新启动能干活
programming is game
tony221
驱动牛犊
驱动牛犊
  • 注册日期2001-12-03
  • 最后登录2013-04-16
  • 粉丝0
  • 关注0
  • 积分187分
  • 威望61点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-04-29 11:29
动态加载驱动用ActivateDevice()
游客

返回顶部