internal static IntPtr SCardControl(
     [In] IntPtr hCard,
     [In] IntPtr dwControlCode,
     [In] byte[] pbSendBuffer,
     [In] IntPtr cbSendLength,
     [Out] byte[] pbRecvBuffer,
     [In] IntPtr pcbRecvLength,
     [Out] out IntPtr lpBytesReturned)
 {
     if (_osUnixPlatform == OSUnixPlatform.Linux)
     {
         return(LinuxNativeMethods.SCardControl(hCard, dwControlCode, pbSendBuffer, cbSendLength, pbRecvBuffer, pcbRecvLength, out lpBytesReturned));
     }
     else if (_osUnixPlatform == OSUnixPlatform.OSX)
     {
         return(OSXNativeMethods.SCardControl(hCard, dwControlCode, pbSendBuffer, cbSendLength, pbRecvBuffer, pcbRecvLength, out lpBytesReturned));
     }
     else
     {
         throw new NotImplementedException();
     }
 }