阅读:3052回复:9
请教com_init()的问题
我在搞串口的驱动。但是对wince中串口的初始化函数
HANDLE Com_Init( ULONG Identifier)不是很理解。它这里传进来的参数Identifier是什么东西。还有是什么东西调用了Com_Init()这个函数。希望得到大家的答复 |
|
论坛版主
|
沙发#
发布于:2004-11-24 14:40
Identifier
Port identifier. If a driver is loaded by Device.exe, this value points to a string containing the registry key within HKEY_LOCAL_MACHINE\Drivers\Active. If the device driver is loaded by a call to the RegisterDevice function, this value is the dwInfo value passed into the call to RegisterDevice. |
|
板凳#
发布于:2004-11-24 16:01
你的提示,我在help文档里也是看见了。但是我在自己开发的平台上单步调试wince的时候运行到这里的时候就会提示找不到devloader.c文件。
|
|
论坛版主
|
地板#
发布于:2004-11-24 16:59
不会吧,你说运行到这里是啥子意思?串口驱动加载后运行这个函数的时候?
|
|
地下室#
发布于:2004-11-24 17:17
我希望查看更上一层是什么部分或是什么函数调用com_init()函数。所以采用单步调试的方式。但是还是没有查出结果。能给点提示吗
|
|
5楼#
发布于:2004-11-24 17:39
AP调用系统API,进而调用driver中open
|
|
6楼#
发布于:2004-11-24 18:17
系统初始化的时候会自动调用串口的com_init(),这里还没有开始使用应用程序
|
|
7楼#
发布于:2004-11-24 18:51
从打印信息来看,他是会打开COM几次的,但是这其实对你的AP是没什么影响的。理论上系统加载driver是只完成init
|
|
8楼#
发布于:2004-11-24 21:27
同意你的看法。但是在这里我希望的就是在系统启动的时候对串口初始化。
|
|
论坛版主
|
9楼#
发布于:2004-11-25 14:38
在系统启动加载驱动的时候,device.exe会调用注册表枚举代码找设备,找到一个加载一个,这个时候找到uart就会调用com_init,这个我可以肯定,至于调用次数和你的注册表项有关,有多个实例就会调用多少次,而且你还要注意有些依赖com口的驱动初始化的时候也可能是用这个函数,如果要手动启动设备,可以用RegisterDevice,这时也要调用com_init。
|
|