PCSC那事儿(二十三--SCardSetAttrib)

 

SCardSetAttrib

 

343 行, SCardSetAttrib 定义在 winscard_clnt.c

实现如下:

 

2732 LONG SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr,

2733         DWORD cbAttrLen)

2734 {

2735         LONG ret;

2736

2737         PROFILE_START

2738

2739         if (NULL == pbAttr || 0 == cbAttrLen)

2740                  return SCARD_E_INVALID_PARAMETER;

2741

 

2742         ret = SCardGetSetAttrib(hCard, SCARD_SET_ATTRIB, dwAttrId, (LPBYTE)pbAttr,

2743                 &cbAttrLen);

2744

2745         PROFILE_END(ret)

2746

2747         return ret;

2748 }

 

 

 

 

2734~2741 行,检查检查。

2742 行, SCardGetSetAttrib, 前面提过了,不过这次第二个参数是 SCARD_SET_ATTRIB.

SCardSetAttrib 也是 SCardGetSetAttrib 的一个 wrapper.

 

343 行,是要设置 ATR 字符串 .ATR 能设置的吗?看看服务端如何实现了?

 

 

345

346         printf("Testing SCardStatus/t/t: ");

347

348 #ifdef USE_AUTOALLOCATE

349         dwReaderLen = SCARD_AUTOALLOCATE;

350         dwAtrLen = SCARD_AUTOALLOCATE;

351         rv = SCardStatus(hCard, (LPSTR)&pcReaders, &dwReaderLen, &dwState, &dwProt,

352                 (LPBYTE)&pbAtr, &dwAtrLen);

353 #else

354         dwReaderLen = 100;

355          pcReaders   = malloc(sizeof(char) * 100);

356         dwAtrLen    = MAX_ATR_SIZE;

357

358         rv = SCardStatus(hCard, pcReaders, &dwReaderLen, &dwState, &dwProt,

359                 pbAtr, &dwAtrLen);

360 #endif

 

 

 

351 行, 358 行, 测试 SCardStatus ,同样存在是否由 SCardStatus 内部分配内存。

SCardStatus 定义在 winscard_clnt.c

实现如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值