reader-SCardListReaders函数是如何实现的?

问题描述

SCardListReaders函数是如何实现的?

读卡器名称如下:
Gemalto USB Smart Card Reader 0
Gemalto USB Smart Card Reader 1
Gemalto USB Smart Card Reader 2

SCardListReaders函数是如何实现的?连接多个读卡器时,当拔下其中某个读卡器时,再次得到的读卡器名字可能会跟原来的不一样(最后面那个数字可能会发生变化),这是为什么呢?有什么规律呢?读卡器的名字是由一下三部分组成:
SCARD_ATTR_VENDOR_NAME
SCARD_ATTR_VENDOR_IFD_TYPE
SCARD_ATTR_DEVICE_UNIT

SCARD_ATTR_DEVICE_UNIT 的值和USB端口号是否有关系?

SCARD_ATTR_DEVICE_UNIT的值是根据读卡器接入的顺序 确定的,第一个是0,第二个是1,依次类推,Windows是在哪存放的设备接入PC的顺序的呢? 我希望得到这个顺序值,然后根据SetupAPI函数获得的SCARD_ATTR_VENDOR_NAME
SCARD_ATTR_VENDOR_IFD_TYPE 来组成读卡器的名称。

时间: 2025-01-19 03:09:00

reader-SCardListReaders函数是如何实现的?的相关文章

Scalaz(16)- Monad:依赖注入-Dependency Injection By Reader Monad

在上一篇讨论里我们简单的介绍了一下Cake Pattern和Reader Monad是如何实现依赖注入的.主要还是从方法上示范了如何用Cake Pattern和Reader在编程过程中解析依赖和注入依赖.考虑到依赖注入模式在编程中的重要性和普遍性,觉着还需要再讨论的深入一些,使依赖注入模式在FP领域里能从理论走向实际.既然我们正在scalaz的介绍系列里,所以这篇我们就着重示范Reader Monad的依赖注入方法.   再说明一下依赖注入:我们说过在团队协作开发里能够实现软件模块的各自独立开发

PCSC读卡器多线程下载apdu问题

问题描述 PCSC读卡器多线程下载apdu问题 我们现在在写一个多线程下载apdu的程序,由于厂商提供的接口函数必须要采用互斥锁,这会严重影响我们的下载速度,所以我们尝试采用PCSC规范中的API函数,但是这系列函数也有一个问题,当读卡器断开与pc的连接时,SCardListReaders函数返回的读卡器名称是不一样的,也就是说同一个读卡器可能会得到不同的读卡器名称,我们无法根据名称来区分不同的读卡器.我们现在的做法是通过setupapi系列函数取得读卡器设备的范例ID,用来区分不同的读卡器,然

GO语言的IO方法实例小结_Golang

type PipeWriter 复制代码 代码如下: type PipeWriter struct {     // contains filtered or unexported fields } (1)func (w *PipeWriter) Close() error关闭管道,关闭时正在进行的Read操作将返回EOF,若管道内仍有未读取的数据,后续仍可正常读取 复制代码 代码如下: import (  "fmt"  "io" ) func main() {  

Scalaz(14)- Monad:函数组合-Kleisli to Reader

  Monad Reader就是一种函数的组合.在scalaz里函数(function)本身就是Monad,自然也就是Functor和applicative.我们可以用Monadic方法进行函数组合: import scalaz._ import Scalaz._ object decompose { //两个测试函数 val f = (_: Int) + 3 //> f : Int => Int = <function1> val g = (_: Int) * 5 //>

php中的extract函数应用

  extract函数用来将一个数字分解成多个变量直接使用,下面是W3C的解释:PHP extract() 函数从数组中把变量导入到当前的符号表中.对于数组中的每个元素,键名用于变量名,键值用于变量值.第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突.本函数返回成功设置的变量数目. 下面表格是参数说明: 语法 extract(array,extract_rules,prefix) 参数 描述 array 必需.规定要使用的输入.

php中的extract函数

extract函数用来将一个数字分解成多个变量直接使用,下面是W3C的解释:PHP extract() 函数从数组中把变量导入到当前的符号表中.对于数组中的每个元素,键名用于变量名,键值用于变量值.第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突.本函数返回成功设置的变量数目.   下面表格是参数说明:   语法 extract(array,extract_rules,prefix) 参数 描述 array 必需.规定要使用的输

最常用的10个javascript自定义函数

javascript|函数 If there was ever a universal common.js shared among the entire develosphere, you'd fine these ten (plus one bonus) functions. It would be the swiss army knife no developer would go into production without. They have no doubt been teste

防止SQL注入的函数。

函数 作者:Loster(OICQ:181306) [如果转载,请勿删除此信息,谢谢] '函数名:S_Request() '辅助函数:R_Reader() '作用:过滤非法字符,防止SQL注入. '参数:S_Str:被传入的变量的名,类型:字符串 '返回值:过滤后的值. '*************************************************************************** Const C_SqlStr="',count,user,User,Cou

linux下signal()函数详解

首先说明函数指针的定义形式: <存储类型> 数据类型 (* 函数指针名) (参数表): 其中存储类型一般不写,用默认形式.可以选auto型.static型和extern型等.数据类型是指针所指向函数返回值的数据类型.参数表是指向函数的参数表. 再说明一个函数的返回值是一个函数指针(可理解为此函数A实际返回的是一个指向另一个函数B的指针)的定义形式: <存储类型> 数据类型 (* 函数名(参数表1))(参数表2): 表头文件 #include<signal.h> 功 能: