I'm writing a virtual SmartCard Reader driver for WinXP, the goal is
to pass APDU's through two interfaces : PC/SC <-> SerialPort(COM)

I've read a lot before posting, but i got all confused:

Firstly, a little confused about writing in WDM or WDF and the type of
driver (Function or Filter driver), in the end i chose writing in WDF
(KMDF) and a Function Driver, correct me if i got it wrong.

Secondly, from the WDK documentation/books i understood that i need to
write some kind of DEVICE_EXTENSION structure that is needed for WDF
Framework, AND some kind READER_EXTENSION structure that is used by
SMARTCARD_EXTENSION (typically for the SmartCard driver).
Problem is that i don't know how to write these.. didn't find any
rules and i don't know what is needed for everything to work.

Thirdly, my driver shows in Device Manager list but DOES NOT show in
available readers list in the applications, i've read that the driver
must register with "smclib" but i don't know what lines I need to
write to make it happen. (How to make the reader visible in the
applications that support PS/SC readers?)

Example code in WDK dosen't help any more, so i came here.
Any kind of help is welcome, thanks in advance
I'm a newbie on writing drivers and this is my first post, so please forgive any inconvenience and mistakes.