smartcard — получить ошибку запроса APDU Переполнение стека

Итак … У меня есть pcsc-ридер, смарт-карта и код на C ++.
Найти читателей, выбрать их, подключиться и получить ATR — работает отлично.

но после ATR-get мне нужно получить запрос APDU, этот код

SCARD_IO_REQUEST ioRecv;
byte  pbRecvBuffer[255];
int pbRecvLength=255;
byte   pbSendBuffer[] ={ 0x00, 0xb0, 0x00, 0x00}; //any comand
int cbSendLength = sizeof(pbSendBuffer);//size of comand
ioRecv.cbPciLength = 255;
DWORD  dwSize=255;

//our Transmit those return error
lReturn = SCardTransmit(hSC,
(LPCSCARD_IO_REQUEST)dwAP,
pbSendBuffer,
cbSendLength,
NULL,
pbRecvBuffer,
&dwSize);

if(lReturn==SCARD_S_SUCCESS){
//do smt with pbRecvBuffer
printf("success");
}
else {
printf("error ");
}

всегда возвращать «ошибка» …
Если бы вы могли мне помочь или указать на мою ошибку, я был бы очень благодарен.

Спасибо

0

Решение

В первом параметре SCardTransmit () была обнаружена ошибка
описание MSDN в SCardTransmit () не должно передавать hSC.
так что нужно передать m_hCardHandle, полученный от SCardConnect (). также это
неправильно передать (LPCSCARD_IO_REQUEST) dwAP

трепло. Это решит проблему

0

Другие решения

Других решений пока нет …