阅读:2078回复:5
我真是惊了,com1和com2有区别吗?晕
设备:non-pnp serial smart card reader.
为了给设备换个串口,在注册表中添加了如下键。 key:Device Value:com1 每次加载驱动时,读注册表:如: com1表示设备插在com1口 然后IoGetDeviceObjectPointer获取Device\\Serial0串口指针。 单独安装设备在com1或者com2口都没有问题, 安装在com2口后,修改注册表为com1,重启加载驱动,读注册表,获取串口的指针,还是ok的。 但是,faint,把com1改成com2,IoGetDeviceObjectPointer返回c000000e,晕倒。此时的 IoGetDeviceObjectPointer的参数的确是L\"\\\\Device\\\\Serial1\",怎么会是报这个错? 每次注册表写com1 的时候是完全正常的,为什么com2就不行呢? gloomy 哪位高人可以指点迷津。。。。 谢谢先。。。 ------------------------------ btw,请问对于串口设备,驱动中如何支持把它切换串口? 大家都是如何实现的? |
|
|
沙发#
发布于:2004-05-21 13:45
没搞明白你到底操作出错的
|
|
|
板凳#
发布于:2004-05-21 17:56
不可能吧,这么奇怪的事情?
是不是你忘了把设备接到com2? 兄弟,搞清楚了吗? 要是明白了,告诉一声啊 [编辑 - 5/21/04 by Shentu] |
|
地板#
发布于:2004-05-21 18:06
搞定了
我使用了IoRegisterPlugPlayNotification来等到串口驱动load进来。 原来是IoGetDeviceObjectPointer等到com1加载后,就把Notification给unregister掉了。 应该继续等 知道com2 也加载进来。 放分 不过不多奥 ^_^ :D |
|
|
地下室#
发布于:2004-05-22 09:17
书上不是说IoRegisterPlugPlayNotification不能在98里用的吗?
从通用性上考虑,是不是不要用它比较好? |
|
5楼#
发布于:2004-05-24 10:29
IoRegisterPlugPlayNotification在98se里可以用。
|
|