Beispiel #1
0
 public PcscSmartCardConnectionInformation(IntPtr readerHandle, SCardApi scardApi)
 {
     this.CurrentBlockWaitingTime     = PcscSmartCardConnectionInformation.ToUInt32(scardApi.GetAttribute(readerHandle, SCardAttributes.CurrentBWT));
     this.CurrentCharacterWaitingTime = PcscSmartCardConnectionInformation.ToUInt32(scardApi.GetAttribute(readerHandle, SCardAttributes.CurrentBWT));
     this.CurrentClockRate            = PcscSmartCardConnectionInformation.ToUInt32(scardApi.GetAttribute(readerHandle, SCardAttributes.CurrentClock));
     this.CurrentD           = PcscSmartCardConnectionInformation.ToUInt32(scardApi.GetAttribute(readerHandle, SCardAttributes.CurrentD));
     this.CurrentEbcEncoding = PcscSmartCardConnectionInformation.ToEcbEncoding(scardApi.GetAttribute(readerHandle, SCardAttributes.CurrentEBCEncoding));
     this.CurrentF           = PcscSmartCardConnectionInformation.ToUInt32(scardApi.GetAttribute(readerHandle, SCardAttributes.CurrentF));
     this.CurrentN           = PcscSmartCardConnectionInformation.ToUInt32(scardApi.GetAttribute(readerHandle, SCardAttributes.CurrentN));
     this.CurrentW           = PcscSmartCardConnectionInformation.ToUInt32(scardApi.GetAttribute(readerHandle, SCardAttributes.CurrentW));
 }
Beispiel #2
0
 internal PcscCardReader(PcscSmartCardSubsystem pcscSubsystem, SCardApi scardApi, string name)
     : base(name)
 {
     this.pcscSubsystem   = pcscSubsystem;
     this.scardApi        = scardApi;
     this.cardReaderState = new SCardCardReaderState
     {
         dwCurrentState = SCardReaderState.Unaware,
         szCardReader   = name
     };
 }
        private PcscSmartCardSubsystem(Options options, SCardApi scardApi)
        {
            this.scardApi   = scardApi;
            this.pollThread = new PollThread(this, scardApi);
            this.pollThread.Start();

            if (options.SynchronousInitialisation)
            {
                this.pollThread.WaitForInitialisation();
            }
        }
Beispiel #4
0
            public PcscCardReaderConnectionInformation(IntPtr readerHandle, SCardApi scardApi)
            {
                string SystemName =
                    Encoding.Unicode.GetString(scardApi.GetAttribute(readerHandle, SCardAttributes.DeviceSystemName).GetSubArray(0, -2));//remove trailing null character

                this.SystemName = SystemName;

                uint ChannelInfo = scardApi.GetAttribute(readerHandle, SCardAttributes.ChannelID).ToUInt32();

                this.Channel = PcscCardReaderConnectionInformation.GetChannelString(ChannelInfo);

                byte Characteristics = scardApi.GetAttribute(readerHandle, SCardAttributes.Characteristics)[0];

                this.SupportsSwallowing = Characteristics.IsBitSet(1);
                this.SupportsEject      = Characteristics.IsBitSet(2);
                this.SupportsCapture    = Characteristics.IsBitSet(3);

                this.DefaultClockRate = PcscCardReaderConnectionInformation.ToUInt32(scardApi.GetAttribute(readerHandle, SCardAttributes.DefaultClock));
                this.DefaultDataRate  = PcscCardReaderConnectionInformation.ToUInt32(scardApi.GetAttribute(readerHandle, SCardAttributes.DefaultDataRate));
            }
 public PollThread(PcscSmartCardSubsystem owner, SCardApi scardApi) : base()
 {
     this.owner    = owner;
     this.scardApi = scardApi;
 }
 public Orgamkt5CardReader(PcscSmartCardSubsystem subsystem, SCardApi scardApi, string name)
     : base(subsystem, scardApi, name)
 {
     this.scardApi = scardApi;
 }