海云居士
驱动牛犊
驱动牛犊
  • 注册日期2001-06-25
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3380回复:12

请教USB PC/SC驱动开发

楼主#
更多 发布于:2004-07-02 00:59
做过USB PC/SC Driver的高手指点一下,
USB PC/SC 驱动应设置SmartCardExtension的哪些值? 需不需要硬件提供特殊的信息(事件)? 若有Source code参考的话感激不尽!
我试着将2000DDK中的SmartCard(串口)例子改成USB的,一连读卡器就蓝屏
kenlee
驱动牛犊
驱动牛犊
  • 注册日期2004-03-15
  • 最后登录2004-12-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-12 10:18
FTDI公司提供USB开发的全新芯片,FT8U232、245,芯片直接把USB信号转换为RS-232信号和FIFO,开发者所做的只是对FIFO的操作,根本不需要对USB有任何了解均可开发USB的外设。

     芯片本身提供定制的设备驱动程序。不再需要开发驱动程序,开发者编程只是同以前的串口操作大体相似。




李友富(Ken Lee)

Cyberwin Technology Ltd. (Shenzhen Office)
Add.: Unit 1402, 14/F., News Building, 2 Shennazhong Road, Shenzhen City
Tel.: 0755-82091099 82092063-811
Fax:  0755-82091884
monile phone : 13828832574
website:       www.cyberwin.com.cn
踏破江湖
海云居士
驱动牛犊
驱动牛犊
  • 注册日期2001-06-25
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-12 16:18
谢了,但我现在不想对硬件做太大改动,毕竟那可能牵涉到模具等很多问题......
海云居士
驱动牛犊
驱动牛犊
  • 注册日期2001-06-25
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-12 16:38
两个人摸索了两周了,现在还是没有解决问题,关键是将例子中的PC/SC驱动的架构套到我原来的旧的USB驱动处理上后,运行起来总很多地方出乎意料,测试又困难。
哪位热心人指点一下(合并DDK例子中的PC/SC驱动框架和原始的USB驱动处理时的重点,或有别的更好的路),加分是一定的。
majin1979
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望10点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-19 09:56
我现在搞得PCSC的驱动遇到一个问题:如何进行SmartCardTracking?
  DDK的例子是串口的,用口线跟踪就可以了,现在是USB的我就不知道该怎么办了,我们想了个方法,但是主要要解决两个问题:一,如何在驱动中建立一个线程,或者设置一个定时器,每隔一段时间察看一下卡片状态。二,得到卡片状态后如何向SmartCardCourceManager提交更新?
Good good study,day day up
海云居士
驱动牛犊
驱动牛犊
  • 注册日期2001-06-25
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-19 12:24
    看来你的情况要好一些,我这里是用SmartCard工具就不认识我的读卡器设备,要不就蓝屏,谈不上后面的过程,

不过关于你的问题,我献点拙见:
    1.可以用PsCreateSystemThread创建内核线程,具体控制交互模式,在DDK的SmartCard源码中的PCI口例子中有。
    2.通知Source Manager的工作例子中应该都实现了,我觉得模仿两个例子中一个的流程框架就可以了

    一起努力! :)
majin1979
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望10点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-19 14:02
中午试着在某一时刻强制将CurrentState置为Scard_Absent,然后直接调用ComletedCardTracking,卡片监视器中的状态立即就改变了,跟踪内核发现,SmartCardTracking紧接着被系统又调用了一次,是否可以这样理解,正如Rayyang2000所说,状态改变后完成系统下发的那个IRP,系统会再下发一个,ComletedCardTracking是直接用DDK的例子改的
Good good study,day day up
海云居士
驱动牛犊
驱动牛犊
  • 注册日期2001-06-25
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-19 15:18
可能是Source Manager一直在监控着驱动,获得CardTracking事件响应后重设CardTracking监控事件.

这样你的驱动应差不多快出来了,能否参考一下?
majin1979
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望10点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-07-20 14:43
确实看起来差不多了,试着创建了一个Thread,每隔2秒读取一下卡片状态,有状态改变时赋值相应State,然后直接CompleteSmartCardTracking,拔卡,插卡,监视器立刻就有反应了,一切看起来都那么美好,我的奖金.......随手拔除Reader,直接黑屏!KAO,SoftICE下显示Break Du to Page Fault,估计是个低级错误,我对Windows编程还是菜鸟,本职是搞单片机的,对于内存向来是有完全的控制欲望,该死的比尔。还是去看看例子,我的Thread就是直接创建,内部作了个定时器,无限循环,移除设备时,根据一个全局变量直接break;PsTerminateSystemThread( STATUS_SUCCESS );
,不知道是否妥当,对于自旋锁它认识我,我不认识它。
驱动是为公司的新产品做的,不太好源码奉上,其实就是一行一行照着DDK改的,串口改USB,你有什么问题我们可以拿出来一起讨论阿。可以公开的我也不会隐瞒
Good good study,day day up
海云居士
驱动牛犊
驱动牛犊
  • 注册日期2001-06-25
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-07-21 16:06
先恭喜你了, :)
海云居士
驱动牛犊
驱动牛犊
  • 注册日期2001-06-25
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-07-21 17:48
    要访问USB,首先要作一些初始化工作如SelectConfiguration等,在原来的USB驱动程序里,这些在IRP_MJ_Create处理里完成,对应于应用层调用CreateFile()时。
    但在PC/SC驱动中没有对IRP_MJ_Create作处理,由SmartCard library来管理Reader的操作,所以现在的USB初始化过程该放到哪里?我试图加在USBStartDevice()里,但一下就死机
majin1979
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望10点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-07-22 16:12
的确是在StartDevice中处理Configuration的,至于为何死机,那就要看具体情况了,死机时SoftICE有什么提示?
Good good study,day day up
majin1979
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望10点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-07-22 16:17
我又遇到问题了,正常的PC/SC设备如果在W2K登录界面(或锁定界面)插入时,Windows应该弹出PIN对话框,可是我的没有,微软的WHQL SmartCard测试工具中Reader Test中也无法看到设备,不知道有什么不对劲
Good good study,day day up
游客

返回顶部