저는 USB 스마트 카드를 개발 중입니다. & 저는이 스마트 카드로 데이터를 전송하기 위해 Windows PC/SC API를 사용합니다. 나는 확실히 크기 & 포인터를 해요dwMaxCCIDMessageLength가 4KB보다 클 때 SCardTransmit이 ERROR_INVALID_PARAMETER를 반환합니다.
if(SCardConnect(hSC, sCard, SCARD_SHARE_EXCLUSIVE, SCARD_PROTOCOL_T1, &hCard, &dwActiveProtocol) == SCARD_S_SUCCESS)
{
if(SCardTransmit(hCard, SCARD_PCI_T1, pSendBuf, ulSendBufLen, SCARD_PCI_T1, pRecBuf, pulRecBufLen) == SCARD_S_SUCCESS)
{
//do something
}
}
에 모두 인/아웃 버퍼가 유효에서이 내 코드의 일부입니다. 장치 기술자의 dwMaxCCIDMessageLength
필드 0x00001000h
보다 낮까지
는 아무 문제 & 프로그램이 잘 작동하지 있습니다,하지만 난 (4킬로바이트보다) 더 큰 값으로 증가 할 때, SCardTransmit
는 ERROR_INVALID_PARAMETER 결과 코드와 함께 실패합니다. 나는이 불일치 어떤 종류의 생각 현재
, 내가 pSendBuf
내용이 완료된 내용을 처리하는 스마트 카드 &에 의해 성공적으로 수신 알고 있지만 카드가 응답을 반환하고자 할 때, 그 오류가 & 발생 (예 : 버퍼 크기 제한) PC/SC 드라이버.
아무도 도와 줄 수 있습니까?