PCSC那事儿(二十三--SCardSetAttrib)
来源:互联网 发布:程序员吴云洋 编辑:程序博客网 时间:2024/06/05 05:30
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
实现如下:
- PCSC那事儿(二十三--SCardSetAttrib)
- PCSC那事儿(二)
- PCSC那事儿(十三--SCardListReaderGroups)
- PCSC那事儿(二十--SCardTransmit)
- PCSC那事儿(二十一--SCardControl)
- PCSC那事儿(二十二--SCardGetAttrib)
- PCSC那事儿(二十四--SCardStatus)
- PCSC那事儿(二十五--SCardDisconnect)
- PCSC那事儿(二十六--SCardReconnect)
- PCSC那事儿(二十八--PCSCD)
- PCSC那事儿(二十九--PCSCD)
- PCSC那事儿(一)
- PCSC那事儿(三)
- PCSC那事儿(四)
- PCSC那事儿(五)
- PCSC那事儿(六)
- PCSC那事儿(七)
- PCSC那事儿(二十七--开始服务端代码分析)
- 嵌入式开发系统板CE9200-1
- PCSC那事儿(二十二--SCardGetAttrib)
- oracle 定时备份
- C++中处理XML文件
- java 简单工厂设计模式
- PCSC那事儿(二十三--SCardSetAttrib)
- 权限系统
- PCSC那事儿(二十四--SCardStatus)
- J2SE API读取Properties文件六种方法
- 项目经理职责
- PCSC那事儿(二十五--SCardDisconnect)
- 智能家居系统设计关键技术
- 使用PHP的gd库出现问题
- PCSC那事儿(二十六--SCardReconnect)