Example #1
0
        protected void establishContext()
        {
            int retCode;

            retCode = PcscProvider.SCardEstablishContext(PcscProvider.SCARD_SCOPE_USER, 0, 0, ref hContext_);
            if (retCode != PcscProvider.SCARD_S_SUCCESS)
            {
                throw new Exception("Unable to establish context - " + PcscProvider.GetScardErrMsg(retCode));
            }
        }
Example #2
0
        public string[] getReaderList()
        {
            byte[]   returnData;
            byte[]   sReaderGroup = null;
            string[] readerList   = new string[0];
            string   readerString = string.Empty;
            int      returnCode;
            IntPtr   hContext    = new IntPtr();
            int      readerCount = 255;

            returnCode = PcscProvider.SCardEstablishContext(PcscProvider.SCARD_SCOPE_USER, 0, 0, ref hContext);

            if (returnCode != PcscProvider.SCARD_S_SUCCESS)
            {
                lastError = returnCode;
                return(readerList);
            }

            returnCode = PcscProvider.SCardListReaders(hContext_, null, null, ref readerCount);

            if (returnCode != PcscProvider.SCARD_S_SUCCESS)
            {
                lastError = returnCode;
                return(readerList);
            }

            returnData = new byte[readerCount];

            returnCode = PcscProvider.SCardListReaders(hContext_, sReaderGroup, returnData, ref readerCount);
            if (returnCode != PcscProvider.SCARD_S_SUCCESS)
            {
                return(readerList);
            }


            readerString = System.Text.ASCIIEncoding.ASCII.GetString(returnData).Trim('\0');
            readerList   = readerString.Split('\0');

            return(readerList);
        }