Dual slot Smartcard reader and GINA logon issue

Hi

We are observing an issue with dual slot smartcard reader and Windows Logon (GINA DLL) under Windows XP. This issue is NOT observed in Windows server 2003, Vista, Win 7. Our driver follows a parent child architecture. First the contact driver loads and registers a slot, then it creates a PDO for which the child driver loads and it registers another slot. The driver is based on WDM arch. The driver is stable and its WHQL certified.

After locking the system if we place a smartcard though the card arrival is detected by the resource manager (this we confirmed by IOCTL_POWER_ON events and driver log messages) the GINA DLL doesnt know about the card arrival and it does not prompt for PIN. This issue occurs ONLY under a SPECIFIC sequence.

  1. Connect reader check for card access in both slots.
  2. Lock the system, place card in Slot 2, OS prompts for PIN.
  3. Where as after locking the system if we unplug and replug the reader and then place the card in slot 2 there is no prompt for PIN.
  4. SLot 1 always works fine.

We did the following checks and analysis.

Through IRP trace and by hooking the Winscard DLL We checked if we are updating the Card status properly everytime and during unplug and replug of the reader. Even during the time when issue occurs winscard and RM gets card arrival notification. Then we used the GINA DLL stub from MS SDK and hooked the calls and found that when the issue occurs though the resource manager is aware of card arrival the GINA DLL doesn’t get
the card arrival notification.

We have another similar dual slot product for which we have a driver which creates
multiple slots by registering multiple interfaces instead of parent child arch. This driver works fine under the same situation and NO issue is observed.

Has anyone come across this kind of issue?
Is this a limitation of multiple PDO arch?
How can we analyze the issue further?
Can we probe winlogon to find y the card arrival event is not notified to the GINA DLL?
Any pointer to further analysis will b really helpful.