none
Virtual Smart card reader installation issue RRS feed

  • Question

  • Dear all,

    I have written a sample UMDF driver for Win8 using Visual studio 11.

    I want to install my UMDF driver as virtual Smart Card Reader. (Root enumerated)

    In INF file I have used class as "SmartCardReader" and ClassGuid as {50dd5230-ba8a-11d1-bf5d-0000f805f530}.

    but I am not able to instal the driver in Win 8. (While installation, Install process is prompting "the folder doesn't contain software for the device or not for the OS")

    If I change the GIUD I am able to install it. But driver didn't show in the standard smart card reader class.

    Am I missing anything?


    Wednesday, October 17, 2012 5:40 AM

All replies

  • what does setupapi.dev.log say?


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Wednesday, October 17, 2012 6:23 AM
  • Dear Doron,

    whenever I tried to install the driver with the above mentioned class and class GUID, as soon as I give the "Have disk" I will get the following error.

    "The folder you specified doesn't contain a compatible software driver for your device. If the folder contains a driver, make sure it is designed to work with Windows for 32-bit systems."

    I did not get anything regarding my driver in "setupapi.dev.log"

    Tuesday, October 23, 2012 9:48 AM
  • this usually indicates that the hw ID of the device does not have a match  in the INF

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Tuesday, October 23, 2012 7:36 PM
  • Hallo,

    make sure that you drivers CLSID

    const CLSID CLSID_Driver = {aaa}   normaly used with  

       public CComCoClass<xxxDriver, &CLSID_Driver>,

    is the equal your INF ID in

    [xxx_Install]
    UmdfLibraryVersion=1.11.0
    ServiceBinary=%12%\UMDF\xxx.dll
    DriverCLSID={aaa}

    by the way. I have added this entryies to my driver for Windows 8.

    [Reader.Install.AddReg]
    HKLM, System\CurrentControlSet\Services\SCardSvr,Start,0x00010001,2
    HKLM, System\CurrentControlSet\Services\CertPropSvc,Start,0x00010001,2

    regards

      mathias

    Wednesday, October 24, 2012 11:57 AM
  • the class ID in the INF hs nothing to do witht he DriverCLSID. and you shoudl NOT be changing start values for services belonging to the OS, let the OS manage its state properly. by doing so, you put your machine and any machine you install your INF onto into an unsupported state. why are you changing the start values?


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Wednesday, October 24, 2012 3:06 PM
  • @Doron Holan:

    I am facing the problem still (Not able to install my driver under Smart Card readers).

    I have few queries regarding that.

    1. Can we develop Smart card reader driver in UMDF?

    2. If YES, Can we develop driver as virtual driver?

    3. Is Microsoft using SmartCardReader class as only for Microsoft?

    4. If not, what are the prerequisites for developing UMDF driver as complaint to Smart card readers class?


    Thursday, January 3, 2013 8:42 AM
  • Outside of the umdf class driver, we have not tested a umdf smart card driver. The fact that it is virtual is not of consequence. The lack of smclib is where you are running into isssues

    how are you attempting to install your virtual smart card? With devcon or device manager?


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Thursday, January 3, 2013 3:46 PM
  • It is with Devcon tool. If I try to install with device manager by "Add Legacy Hardware" it will prompt me following error

    "The folder you specified doesn't contain a compatible software driver for your device. If the folder contains a driver, make sure it is designed to work with Windows for 32-bit systems."

    One thing I have noticed is "All the UMDF drivers with windows 8 are not ROOT enumerated".

    Now I have to run WHCK on the driver, As unclassified driver my driver is WHCK certified. But after installing with standard smart card reader class, PnP tests and others are failing with error stating as below.

    "SetTarget() - Failed to find a smart card reader with AthenaT0 test card inserted HRESULT=0x80040200 HRESULT=0x80040200"

    Kindly help on this.

    Thanks in advance

    Monday, January 7, 2013 9:19 AM
  • Umdf supports root enumerated devices, many of our internal validation tests use root enumerated device stacks. Make sure you are enabling the smart card device interface guid

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Monday, January 7, 2013 3:36 PM
  • what is the specific command line you are using to run devcon?


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Monday, January 7, 2013 5:15 PM
  • @Doron Holan

    Yes, I have used the standard Class GUID of smart card reader (PC/SC).

    Command used to install driver is as below:

    devcon.exe Install SmartCardReader.inf ROOT\MySmartCardReader

    But my basic question is why can't I used "Add Legacy Hardware" to install the driver?

    Kindly any comments on this?

    Tuesday, January 8, 2013 5:53 AM
  • Add legacy hardware is for old isa stuff, not for creating a root enumerated device.  does your INF matcha against ROOT\MySmartCardReader ? the class guid in the INF is not the device interface guid, the class guid in the inf controls ui and some potentially default security settings.  the device interface guid is enabled in code, smclib does this for you i think (in the normal case)

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Tuesday, January 8, 2013 5:57 AM
  • Yes my INF match against ROOT\MySmartCardReader and by devcon tool I can install my driver well.

    in INF Version section

    Class        = SmartCardReader

    ClassGuid = {50dd5230-ba8a-11d1-bf5d-0000f805f530}

    If Add legacy hardware is for old ISA devices, then How to install ROOT enumerated devices?

    Is devcon tool is the only way?

    Thanks,

    Tuesday, January 8, 2013 6:59 AM
  • Add legacy HW can create root enumerated devices as well, but I think the wizard was removed in a recent release.

    THIS: 

    ClassGuid = {50dd5230-ba8a-11d1-bf5d-0000f805f530}

    does not enable a device interface


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Tuesday, January 8, 2013 7:40 AM
  • What does device interface mean?

    I have referred system's INF and created mine.

    There is no such device interface section/lines.

    Tuesday, January 8, 2013 10:46 AM
  • Device interfaces are managed in your driver's code, not inf. Read http://msdn.microsoft.com/en-us/library/windows/hardware/ff561372(v=vs.85).aspx

    you should use the system's predefined smart card reader guid, not a guid you create yourself


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Tuesday, January 8, 2013 3:09 PM
  • Doron, then is the information incorrect where it states "Vendors **MUST** also add a section... " here: https : // docs.microsoft.com/en-us/windows-hardware/drivers/smartcard/installing-smart-card-reader-drivers

    It seems dangerous to require that.  No?  What if two drivers require it and the first is uninstalled.  Would it not break the second driver?  etc.

    Wednesday, August 12, 2020 4:47 PM
  • Driver uninstall only removes device node related state. Global state, such as registry writes outside of the devnode scope, are left alone. So if two smart card INFs have this directive to change system owned service state, the last inf installed “wins” (overrides previous state) and that state is left alone when either/both of the driver packages are uninstalled.

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Saturday, August 15, 2020 6:02 PM
  • @Doron, This question might be best taken off line but, do you know of any issues in Windows 10 Build 1909 that could cause what you stated regarding registry entries external to the devnode to be deleted?  Case in point is that we have seen on some systems the Start key gets deleted for the referenced SCardSvr and CertPropSvc?  I am involved in two opened MS support cases around this issue.
    Monday, August 17, 2020 4:36 PM