PC/SC标准读卡器,SCardConnect返回6处理,PCSC API函数写法
作一个PC/SC标准读卡器接入的程序,作完后在32位系统进行正常,在64位系统上SCardConnect返回6,网上看了好多,说是驱动的问题,而后去微软msdn查看了一下函数原形,发再两个不同,SCARDCONTEXT 32位的用 uint 类型,64位的用ulong类型,LPSCARDHANDLE 32位的用 uint 类型,64位的用ulong类型,改正后,在64位系统运行下通过,写法如下(上面的是64位写法,下面的是32位写法):
public struct SCARD_IO_REQUEST
{
/// <summary>
/// T0=1
/// T1=2
/// raw=0x00010000
/// </summary>
public int dwProtocol;
/// <summary>
/// 字节长度
/// </summary>
public int cbPciLength;
}
/// <summary>
/// apdu命令返回命令
/// </summary>
public struct apdu_rs
{
public byte[] data;
public byte sw1;
public byte sw2;
}
/// <summary>
/// 在操作系统上分配资源,建立将在其中进行设备数据库操作的资源管理器上下文
/// </summary>
/// <param name="dwScope">
/// 输入类型;表示资源管理器上下文范围,
/// 将是下列值之一
/// SCARD_SCOPE_USER = 0;(在用户域中完成设备数据库操作)
/// SCARD_SCOPE_SYSTEM =2;(在系统域中完成设备数据库操作)
/// </param>
/// <param name="pvReserved1">输入类型;保留,必须为NULL</param>
/// <param name="pvReserved2">输入类型;保留,必须为