Hi Muscle users,
I just discovered, thanks to a user of PCSC-Perl under Windows which
wanted to add support for SCardControl, that the SCardControl() function
does not have the same prototype under Microsoft PCSC and under
PCSC-lite.
Under Windows we have:
LONG SCardControl(
IN SCARDHANDLE hCard,
IN DWORD dwControlCode,
IN LPCVOID lpInBuffer,
IN DWORD nInBufferSize,
OUT LPVOID lpOutBuffer,
IN DWORD nOutBufferSize,
OUT LPDWORD lpBytesReturned
);
Note: a dwControlCode is used.
In the PCSC workgroup specification (Part 5. ICC Resource Manager
Definition, page 27) we have:
RESPONSECODE Control(
IN DWORD ControlCode // Vendor-defined control code
IN BYTE[] InBuffer // Input data buffer
IN OUT BYTE[] OutBuffer // Output data buffer
OUT DWORD OutBufferLength // Length of data in output data buffer
)
Note: the InBuffer length is not included.
In PCSC-lite we have:
long SCardControl(
long hCard,
const unsigned char *pbSendBuffer,
unsigned long cbSendLength,
unsigned char *pbRecvBuffer,
unsigned long *pcbRecvLength);
My questions are:
- do we need to modify PCSC-lite to have the same interface?
- do you have application code that uses SCardControl (and would break)?
- do we need to also modify the IFD handler IFDHControl() prototype?
- which drivers are using IFDHControl() and would break?
Feedback would be appreciated.
Bye,
--
Dr. Ludovic Rousseau [EMAIL PROTECTED]
-- Normaliser Unix c'est comme pasteuriser le camembert, L.R. --
_______________________________________________
Muscle mailing list
[EMAIL PROTECTED]
http://lists.musclecard.com/mailman/listinfo/muscle