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(); } }