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

Reply via email to