surprised vxd smartcard driver problem on windows98

Hi,
I encounter a surprised problem for my serial smartcard driver. I am not
sure if it’s a bug of smclib in win98 or a mistake of mine.
I have writed a wdm smart card reader driver for windows 2000&xp, and it
works very well. For windows 98, I rewrite a vxd driver.I install the
microsoft smart card base component and update the smclib to version 951.
When I use the winscard dll to access the smart card reader. most of it
works very well,but it seems SCardDisconnect dosen’t support parameter
“SCARD_EJECT_CARD” and “SCARD_UNPOWER_CARD” on windows 98. After I call
SCardDisconnect with “SCARD_EJECT_CARD”, I trace my driver and find the
“IOCTL_SMARTCARD_EJECT” has never reached the lower driver ioctrl interface.
I also try to intialize the reader extension MechProperties to
“SCARD_READER_EJECTS | SCARD_READER_SWALLOWS”, and fill the callback
functions “RDF_CARD_EJECT” and “RDF_READER_SWALLOW”, the RDF_READER_SWALLOW
callback function can be called normally, but “RDF_CARD_EJECT” still can
never be called. The SCardDisconnect called with parameter
“SCARD_EJECT_CARD” always result as a power down and cold reset procedure
following.In this case, the smart card will go back to power on state
immediately. so my customers have to unplug the smart card with power on.

Is this a smclib problem on windows 98 or a mistake of my driver? Can anyone
help me? thank you!

Please note that the name of this group is NTDEV, not 9xdev.

wrote in message news:xxxxx@ntdev…
> Hi,
> I encounter a surprised problem for my serial smartcard driver. I am not
> sure if it’s a bug of smclib in win98 or a mistake of mine.
> I have writed a wdm smart card reader driver for windows 2000&xp, and it
> works very well. For windows 98, I rewrite a vxd driver.I install the
> microsoft smart card base component and update the smclib to version 951.
> When I use the winscard dll to access the smart card reader. most of it
> works very well,but it seems SCardDisconnect dosen’t support parameter
> “SCARD_EJECT_CARD” and “SCARD_UNPOWER_CARD” on windows 98. After I call
> SCardDisconnect with “SCARD_EJECT_CARD”, I trace my driver and find the
> “IOCTL_SMARTCARD_EJECT” has never reached the lower driver ioctrl
> interface.
> I also try to intialize the reader extension MechProperties to
> “SCARD_READER_EJECTS | SCARD_READER_SWALLOWS”, and fill the callback
> functions “RDF_CARD_EJECT” and “RDF_READER_SWALLOW”, the
> RDF_READER_SWALLOW
> callback function can be called normally, but “RDF_CARD_EJECT” still can
> never be called. The SCardDisconnect called with parameter
> “SCARD_EJECT_CARD” always result as a power down and cold reset procedure
> following.In this case, the smart card will go back to power on state
> immediately. so my customers have to unplug the smart card with power on.
>
> Is this a smclib problem on windows 98 or a mistake of my driver? Can
> anyone
> help me? thank you!
>
>
>

I’ve only written readers for XP and Server 2003, but I would look at how
the ATR is being handled and the contents of the ATR. Perhaps the smclib for
98 is looking for a different ATR content?


The personal opinion of
Gary G. Little

wrote in message news:xxxxx@ntdev…
> Hi,
> I encounter a surprised problem for my serial smartcard driver. I am not
> sure if it’s a bug of smclib in win98 or a mistake of mine.
> I have writed a wdm smart card reader driver for windows 2000&xp, and it
> works very well. For windows 98, I rewrite a vxd driver.I install the
> microsoft smart card base component and update the smclib to version 951.
> When I use the winscard dll to access the smart card reader. most of it
> works very well,but it seems SCardDisconnect dosen’t support parameter
> “SCARD_EJECT_CARD” and “SCARD_UNPOWER_CARD” on windows 98. After I call
> SCardDisconnect with “SCARD_EJECT_CARD”, I trace my driver and find the
> “IOCTL_SMARTCARD_EJECT” has never reached the lower driver ioctrl
> interface.
> I also try to intialize the reader extension MechProperties to
> “SCARD_READER_EJECTS | SCARD_READER_SWALLOWS”, and fill the callback
> functions “RDF_CARD_EJECT” and “RDF_READER_SWALLOW”, the
> RDF_READER_SWALLOW
> callback function can be called normally, but “RDF_CARD_EJECT” still can
> never be called. The SCardDisconnect called with parameter
> “SCARD_EJECT_CARD” always result as a power down and cold reset procedure
> following.In this case, the smart card will go back to power on state
> immediately. so my customers have to unplug the smart card with power on.
>
> Is this a smclib problem on windows 98 or a mistake of my driver? Can
> anyone
> help me? thank you!
>
>
>

Thanks for your reply. The ATR content is “3B E9 00 00 81 31 B7 45 32 02 40
14 09 55 2D 02 0B B7”,and when I call scardconnect, it returns a successful
reply. What can cause smclib for win98 to look for a different ATR? In
addition, I have no VC++ 5.0, I use VC++ 6.0 to compile my ddk source code
instead of VC++5.0(which is required by microsoft), is it the reason of
current problem?

Gary G. Little wrote in message news:xxxxx@ntdev…
> I’ve only written readers for XP and Server 2003, but I would look at how
> the ATR is being handled and the contents of the ATR. Perhaps the smclib
for
> 98 is looking for a different ATR content?
>
> –
> The personal opinion of
> Gary G. Little
>
> wrote in message news:xxxxx@ntdev…
> > Hi,
> > I encounter a surprised problem for my serial smartcard driver. I am not
> > sure if it’s a bug of smclib in win98 or a mistake of mine.
> > I have writed a wdm smart card reader driver for windows 2000&xp, and it
> > works very well. For windows 98, I rewrite a vxd driver.I install the
> > microsoft smart card base component and update the smclib to version
951.
> > When I use the winscard dll to access the smart card reader. most of it
> > works very well,but it seems SCardDisconnect dosen’t support parameter
> > “SCARD_EJECT_CARD” and “SCARD_UNPOWER_CARD” on windows 98. After I call
> > SCardDisconnect with “SCARD_EJECT_CARD”, I trace my driver and find the
> > “IOCTL_SMARTCARD_EJECT” has never reached the lower driver ioctrl
> > interface.
> > I also try to intialize the reader extension MechProperties to
> > “SCARD_READER_EJECTS | SCARD_READER_SWALLOWS”, and fill the callback
> > functions “RDF_CARD_EJECT” and “RDF_READER_SWALLOW”, the
> > RDF_READER_SWALLOW
> > callback function can be called normally, but “RDF_CARD_EJECT” still can
> > never be called. The SCardDisconnect called with parameter
> > “SCARD_EJECT_CARD” always result as a power down and cold reset
procedure
> > following.In this case, the smart card will go back to power on state
> > immediately. so my customers have to unplug the smart card with power
on.
> >
> > Is this a smclib problem on windows 98 or a mistake of my driver? Can
> > anyone
> > help me? thank you!
> >
> >
> >
>
>
>