internal static IntPtr SCardStatus( [In] IntPtr hCard, [Out] byte[] szReaderName, [In, Out] ref IntPtr pcchReaderLen, [Out] out IntPtr pdwState, [Out] out IntPtr pdwProtocol, [Out] byte[] pbAtr, [In, Out] ref IntPtr pcbAtrLen) { if (_osUnixPlatform == OSUnixPlatform.Linux) { return(LinuxNativeMethods.SCardStatus(hCard, szReaderName, ref pcchReaderLen, out pdwState, out pdwProtocol, pbAtr, ref pcbAtrLen)); } else if (_osUnixPlatform == OSUnixPlatform.OSX) { return(OSXNativeMethods.SCardStatus(hCard, szReaderName, ref pcchReaderLen, out pdwState, out pdwProtocol, pbAtr, ref pcbAtrLen)); } else { throw new NotImplementedException(); } }