阅读:1566回复:4
关于驱动的调用问题!!
跟据帮助写了个驱动,编译成.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,真是郁闷。 |
|
沙发#
发布于:2003-12-22 08:57
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2004-03-31 07:15
有没有办法在程序里面动态注册一个驱动?
哪里有例子啊? |
|
|
地板#
发布于:2004-04-08 04:12
偶试过了,动态加载失败,还是修改localmachine\driver\buildin,然后重新启动能干活
|
|
|
地下室#
发布于:2004-04-29 11:29
动态加载驱动用ActivateDevice()
|
|