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