Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在未连接智能卡的情况下发送带有winscard.dll (PC/SC)的APDU

在未连接智能卡的情况下发送带有winscard.dll (PC/SC)的APDU
EN

Stack Overflow用户
提问于 2015-02-16 10:53:31
回答 4查看 4.2K关注 0票数 0

我正在尝试将APDU命令发送到读卡器本身,而不是智能卡。我正在使用的test命令打开和关闭RF场。

如果我第一次连接到智能卡,此命令将通过SCardTransmit发送。但是一旦RF磁场关闭,卡就会断开连接,我不能发送另一个APDU来打开磁场。

基本上,有没有办法在没有卡的情况下通过pc/sc发送APDU。我想在读卡之前配置读卡器的某些部分。

提前谢谢。

--编辑

正如FPGA Warrior提到的,我需要使用SCardControl向读卡器发送APDU命令。

到目前为止,我得到的步骤如下:

使用SCardConnect与SCARD_SHARE_DIRECT和SCARD_PROTOCOL_UNDEFINED连接到“卡片”。这将作为成功返回,并为您提供卡句柄。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
_lastError = SCardConnect(_hContext, _cardReaderName, dwShareMode, dwPreferredProtocols, ref phCard, ref _activeProtocol);

返回值:0和一个有效的_hCard句柄。

然后我调用SCardControl

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
_lastError = SCardControl(phCard, CTL_code(3500), txBytes, (uint)txByte.Length, out rxBytes, (uint)rxAttr.Length, out rxLen);

我现在得到错误ERROR_INVALID_HANDLE (0x6)。因此,我的SCardConnect似乎没有返回有效的句柄,即使它没有返回错误。

作为附注,要在设备上使用PC_to_RDR_Escape模式,您可能需要编辑注册表,以便在安装的驱动程序不允许的情况下将其打开。https://msdn.microsoft.com/en-us/library/windows/hardware/dn653571%28v=vs.85%29.aspx

EN

回答 4

Stack Overflow用户

发布于 2015-02-16 17:09:06

我不知道为什么要通过向卡发送APDU来配置读卡器。事情不应该是这样的。SCardTransmit用于向卡发送命令,如果没有卡,它将不起作用(除非你黑了驱动程序,所以它实际上是插入了卡)。

你可能正在寻找这些API中的一个:https://msdn.microsoft.com/en-us/library/windows/desktop/aa375369(v=vs.85).aspx,它让你可以更直接地访问你的读卡器/卡。

指定您希望在阅读器上设置的配置可能会增加更改,以获得对您有帮助的答案。

票数 0
EN

Stack Overflow用户

发布于 2020-07-19 09:36:30

我可以使用带有这些参数的perl绑定做到这一点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#connect witouth card in
$hCard = new Chipcard::PCSC::Card($hContext, $ReadersList[0], $Chipcard::PCSC::SCARD_SHARE_DIRECT, $Chipcard::PCSC::SCARD_PROTOCOL_RAW);  

#send any adpu
$cmd = Chipcard::PCSC::ascii_to_array("FF 00 40 F0 04 05 05 03 03");
$hCard->Transmit($cmd);
票数 0
EN

Stack Overflow用户

发布于 2020-11-06 07:43:23

我也有过类似的经历,在SCardConnect之后调用SCardTransmit (从SCardTransmit接收ERROR_INVALID_HANDLE <0x6> )。

作为实验,在SCardTransmit之后放入Thread.Sleep(100)似乎可以将睡眠语句后的错误代码从0x6更改为SUCCESS (在调试器中可以看到)。这不是一个解决方案,而是一个正确方向的提示。在SCardControl之后编写线程安全代码来处理语句将是一种更好的方法。

下面的链接是一个很好的参考:

https://www.csharpstar.com/csharp-race-conditions-in-threading/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28539775

复制
相关文章
Excel公式技巧07: TRANSPOSE,非数组版本
本文研究数组公式的非数组版本,更多地属于第三类。强迫TRANSPOSE正常运行而不进行数组输入的必要强制措施令人费解且不切实际。这并不是说对它们没有兴趣,但这些强制性的使用并非TRANSPOSE独有。实际上,可以在许多函数中使用它们来生成返回值,否则将需要数组输入。
fanjy
2020/02/26
1K0
精通Excel数组公式023:使用数组公式的条件格式
条件格式是有趣的,特别是使用公式并链接条件到单元格中时。下面是使用公式的条件格式的一些说明:
fanjy
2021/03/12
2.9K0
Excel公式技巧27: 在条件格式中使用公式来突出显示单元格
条件格式与公式相配合,往往能够发挥很大的威力,其中之一就是用来突出显示单元格。如下图1所示,在“新建格式规则”对话框中:
fanjy
2020/04/14
3.3K0
Excel公式技巧27: 在条件格式中使用公式来突出显示单元格
EXCEL公式使用
表示内容如果包含√,则为真,为红色 表示内容开头为低,则为真 表示选中全部
诺谦
2022/05/10
5440
EXCEL公式使用
jxls嵌套导出excel。
 我们设想一下,有一条哆啦A梦的流水生产线,生产线上在生成这哆啦A梦。我们知道,哆啦A梦的口袋中有很多不同的道具,那么我们在生成的时候就把这些道具预先放进哆啦A梦的口袋吧。
崔笑颜
2020/06/08
1.4K0
数据人必会的Excel|掌握这些逻辑函数,让公式嵌套更简便!!
在Excel逻辑判断中IF经常和AND,OR连用,表示在某种条件下执行固定的操作,和SQL中Case When的用法极为相似。
数据万花筒
2021/01/12
1.7K0
Latex公式换行编写
latex在写公式时往往会遇到长公式或者连续等于的情况,这时可以选择公式换行操作:
全栈程序员站长
2022/07/01
9490
Latex公式换行编写
【学习】excel函数嵌套
1. 前言: 相信很多学习EXCEL的同伴都会时常将一句话挂在嘴边: “请老师教我下这个公式怎么写?” 要么就是: “老师太牛了,这么厉害的嵌套您是怎么写出来的,能不能教教我?” 说实话,我也被这样问过几次,虽说自己函数学的也不怎么样,但是对于这样的问题,我实在不知如何回答,更谈不上“教”这么神圣的动作。 …… 在我看来(至少我是这么认为的),学习EXCEL不是单纯的了解函数。 了解函数只是工具,更重要的是如何分析问题,写EXCEL公式不是函数记忆大比拼,而是逻辑思维的较量。 …… 可能这样说,只会让一些
小莹莹
2018/04/18
1.1K0
【学习】excel函数嵌套
Excel公式技巧24: Excel公式中的降维技术
看过前面一系列文章的朋友,一定会熟悉“重新定义数组维度”的概念。这是一项非常有用且非常重要的技术,使我们可以接受二维数组并将其转换为一维数组,同时将元素保留在该数组中。
fanjy
2020/03/25
2K0
Excel公式技巧24: Excel公式中的降维技术
Excel公式技巧18: 使用公式排序
Excel提供了排序功能,可以方便地对选中的列表进行排序。本文给出一个基于公式的排序解决方案,将指定区域内的数据按字母顺序排序。
fanjy
2020/03/12
2.1K0
Excel公式技巧69:查找第一个非空值
在《Excel公式技巧63:查找最后一行》中,我们使用LOOKUP函数的公式获取最后一个值或该值所在的行号。如果列表中的前面有空,那么如何获取第一个非空值呢?
fanjy
2020/12/08
16.7K0
Excel公式技巧69:查找第一个非空值
编写Excel宏[通俗易懂]
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
全栈程序员站长
2022/09/06
1.7K0
编写Excel宏[通俗易懂]
精通Excel数组公式026:你弄清楚大型数组公式是怎么工作的吗?
在本系列中,大部分内容都是在阐述特定数组公式如何工作的逻辑,但是假设你有一个大型的数组公式,却不知道它是如何工作的,你该怎么办?你已经学到了许多技术,弄清楚为什么一个公式正在做它该做的事。
fanjy
2021/03/26
2.3K0
精通Excel数组公式026:你弄清楚大型数组公式是怎么工作的吗?
Excel公式技巧61:插值公式技术
一个项目从2013年开始投资,相关数据如下图1所示,求该项目的投资回收期?也就是说,累计现金流等于0的那个时间点。
fanjy
2020/11/06
2.5K0
Excel公式:提取行中的第一个非空值
有时候,工作表行中的数据可能并不在第1个单元格,而我们可能会要获得行中第一个非空单元格中的数据,如下图1所示。
fanjy
2022/11/16
4.7K0
Excel公式:提取行中的第一个非空值
Excel公式技巧:Excel公式中的数字9.99999999E+307
这个数字:9.9999999E+307,我们经常会在公式中用得上它。这是一个神奇的数字,在查找数值时能够发挥很大的作用。本文介绍的就是这个数字的使用技巧。
fanjy
2022/11/16
1K0
Excel公式看不懂?三招教你破解Excel神难公式!
这种情况下,可以使用公式求值的功能一步步查看公式每次的关键计算结果,这样就很容易理解公式的计算过程了,如下图所示:
大海Power
2021/08/30
1.3K0
Excel揭秘19:SERIES公式
SERIES公式控制着绘制Excel图表的数据,并且只在图表中有效,它不是真正的公式但可以像Excel公式一样在公式栏对其进行编辑。
fanjy
2019/10/16
5.3K0
Excel揭秘19:SERIES公式
SQL游标使用——格式、实例、嵌套
在sql语句中,如果要实现诸如for循环一样的功能就会用到游标,但游标一定要慎用,因为使用游标对数据库性能有关很大的影响。
全栈程序员站长
2022/09/14
7320
POI导出excel执行公式 公式不生效问题[通俗易懂]
在下面这行代码:workbook.write(out);// 输出Excel内容,生成Excel文件 “之前”, 添加这个语句:workbook.setForceFormulaRecalculation(true);// 执行公式。
全栈程序员站长
2022/09/23
1.9K0

相似问题

DataGridView::CellBeginEdit事件未触发

125

DataGridView只调用CellFormatting一次

112

只在第一次尝试鼠标时开火

10

Xamarin.Forms: TriggerAction只第一次开火

13

MutationObserver只在第一次变化时才开火

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文