cherryzh
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2002-11-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1065回复:3

usb与操作系统通信 以及智能卡问题急救

楼主#
更多 发布于:2002-11-07 22:40
我有一个很急的问题请教大家
我想实现这样的一个功能: usb口上的智能卡拔出以后 系统自动进入到锁定的状态 同时要求屏蔽原先usb异常拔出时的出错对话框。
已有的解决方案是: 通过厂商提供的函数来定时查询usb智能卡是不是正常连接 可是我没有办法阻止系统接收usb未正常联接的状态信息 所以那个出错对话框总是有 :( 有什么可以解决的办法呢

我看了有关于usb驱动的书,知道了操作系统可以提供api来对usb设备进行访问,好像是UsbBuild一类的函数,其中的URB包可以用来获得当前usb的状态信息,可是是不是还是要采用查询的方法来不停给usb发URB呢?这样好像仍旧效率很低的。

我还想了解一点:usb插拔以后,是不是会向操作系统主动发消息呢?从2000的设备管理来看,WM_DEVICECHANE引起了系统广播查询当前是那一个设备发生了状态改变(包括USB),可是我怎么确定是不是usb上的设备发出的呢?usb插拔以后,到底是什么消息引起了WM_DEVICECHANE这个消息的广播阿? 这样的消息是不是已经写在了硬件驱动,或者有可能位于厂商提供的说明书呢?
请高手赐教阿 20分送上
 
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-08 09:17
USB插拔是有硬件信号到PC,但那只限于电源提供的电流信号变化。关键还是USB总线驱程和host controller驱程,它能随时监测USB总线上的设备变化。这个消息或许就是它们发出的吧。要深入它的细节,应该看看UHCI/OHCI规范。
少了e,就少了全部
cherryzh
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2002-11-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-08 09:41
请问是不是要看一下windows自己已经写好的ucbd.dll已经其他相关的驱动程序呢?这样的驱动程序提供的接口是什么?

另外 我还不知道怎么给分呢 赫赫
zhangsk
游客
游客
地板#
发布于:2002-11-08 10:49
usb口上的智能卡拔出以后 系统自动进入到锁定的状态 同时要求屏蔽原先usb异常拔出时的出错对话框。
---
  The simple way i think to do this maybe change the driver and app
---COMMUNICATION.

我还想了解一点:usb插拔以后,是不是会向操作系统主动发消息呢?
---System will notice it and send the message to Application.
从2000的设备管理来看,WM_DEVICECHANE引起了系统广播查询当前是那一个设备发生了状态改变(包括USB),可是我怎么确定是不是usb上的设备发出的呢?
-----
I think your application can justify this.
usb插拔以后,到底是什么消息引起了WM_DEVICECHANE这个消息的广播阿?
这样的消息是不是已经写在了硬件驱动,或者有可能位于厂商提供的说明呢?
---
  NO

PS.
I think you may need understand the communication between  kernel and application. You should understand the PnP,MESSAGE.
For more information,read some driver and win32 documents.
Good Luck
游客

返回顶部