SmartCardReader PCSC

This section controls the behavior of the PC/SC smart card reader support.

CallTrace

This entry is used to include writing of each PC/SC call towards trace.

0

PC/SC calls are not written to trace

1

PC/SC calls are written to trace

Default value is 0; PC/SC calls are not written.

All PC/SC calls are written when enabled which may cause trace to grow large quite fast, since even smart card polling is written.

Enable

This entry specifies whether the PC/SC smart card reader support should be available.

0

PC/SC support not available

1

PC/SC support available

Default value is 1; PC/SC smart card reader support is available.

Library

This entry specifies the PC/SC library that should be loaded. Default values:

  • Windows – winscard.dll

  • Linux – libpcsclite.so

  • macOS – libpcsclite.dylib

StateTimeout

This entry changes the behavior for smart card present check.

Normally smart card presence is checked by asking the smart card readers quite often by polling, the poll time is controlled by [SmartCardReader]>Poll entry.

Using this parameter will change to a call method which will ask for state and not return until something has changed.

0

Normal polling is used

X

State driven presence is used, specify the number of minutes for timeout (10 recommended).

Default value is 0; normal polling is used.

This feature requires enhanced support for the PC/SC implementation and eventually some enhanced support for the PC/SC smart card reader driver. Currently this feature should only be used with Windows, since there are some unknown problems for Linux/macOS platforms.
This feature may work better with some PC/SC smart card drivers compared with polling, but there is no recommendation when polling respective state driven presence check should be used.

Unload

This entry is used to control the unloading of the PC/SC library.

0

Library never unloaded

1

Library unloaded when not used

Default value is 1; library unloaded when not used.

Library unloading currently works badly for Linux/macOS platforms, recommended value is therefore never unload on these platforms.

UseCritical

This entry is used to add a global critical section for all PC/SC calls. When it is enabled only one thread will access PC/SC at each time.

0

Critical section is not enabled, multiple threads may access

1

Critical section is enabled, multiple threads may not access

Default value is 0; critical sections should be handled by PC/SC.

Normal usage will have no problem with multiple threads accessing at the same time, but some drivers have problems, so it may be useful for testing.