From: Moulefrite on
Hi all,
I have a project where it's necessary to "upgrade" sourceCode of
smartcardReader driver for pass WHQL certification.
This driver works fine in XP 32 bits.
Someone can explain me differents steps for finish this project.
For the moment :
_ I have updated the .inf file for execute "AMD64" routine.
_ Recomplied the sourceCode and installed to XP x64 bit, and driver seems to
be work.

Someone could confirm me that for compile a driver 64 bit Vista Seven, it's
necessary to build it with "WDK 7600 >> build environnement >> Windows Server
2003" and select "X64 Free or Checked" for generate "wnet64" directory ?

If I use a computer with Intel processor, I can compile the driver with X64
? or necessarily with IA64 ?

I have an other problem, I have compiled a "wnet64" drivers that work with
XP 64bit, but when I try to install it to Vista I have an error code 39 and
the same error status with seven (value 52)
Even if I remove the integrity verification signature drivers, result is the
same.
Some one have an idea ?

I have read MSDN but I don't know if this driver need some rewrite for work
with Vista, Seven OS or just need a particular compilation.
For exemple this link found in other thread :
http://msdn.microsoft.com/en-us/library/ff545635%28v=VS.85%29.aspx
Someone can explain me the different part to rewrite ( ioDeviceControl ? ,
inOutBuffer from IRP ?)
Interest to use this macro : ULongToHandle(ul) ?

Thanks a lot by advance (^_^)

ps : Sorry for my poor level in english.


From: Don Burn on
Yes if you are going for WHQL you should use the latest WDK. Your build
environment is correct by using the oldest 64-bit OS you will support
all of them. I suspect your install problem is that 64-bit drivers
must have a digital signature to load. Try having Windbg connected and
boot choosing the F8 option to ignore signatures and see if that allows
the driver to load.

If you are not doing stupid things like passing 32-bit pointers in IOCTL
data you should not need to modify your driver for 64-bit. You may need
to in order to pass WHQL.


Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr




"Moulefrite" <Moulefrite(a)discussions.microsoft.com> wrote in message
news:E6180A95-8A30-4F1D-8EE0-05E24B764A01(a)microsoft.com:

> Hi all,
> I have a project where it's necessary to "upgrade" sourceCode of
> smartcardReader driver for pass WHQL certification.
> This driver works fine in XP 32 bits.
> Someone can explain me differents steps for finish this project.
> For the moment :
> _ I have updated the .inf file for execute "AMD64" routine.
> _ Recomplied the sourceCode and installed to XP x64 bit, and driver seems to
> be work.
>
> Someone could confirm me that for compile a driver 64 bit Vista Seven, it's
> necessary to build it with "WDK 7600 >> build environnement >> Windows Server
> 2003" and select "X64 Free or Checked" for generate "wnet64" directory ?
>
> If I use a computer with Intel processor, I can compile the driver with X64
> ? or necessarily with IA64 ?
>
> I have an other problem, I have compiled a "wnet64" drivers that work with
> XP 64bit, but when I try to install it to Vista I have an error code 39 and
> the same error status with seven (value 52)
> Even if I remove the integrity verification signature drivers, result is the
> same.
> Some one have an idea ?
>
> I have read MSDN but I don't know if this driver need some rewrite for work
> with Vista, Seven OS or just need a particular compilation.
> For exemple this link found in other thread :
> http://msdn.microsoft.com/en-us/library/ff545635%28v=VS.85%29.aspx
> Someone can explain me the different part to rewrite ( ioDeviceControl ? ,
> inOutBuffer from IRP ?)
> Interest to use this macro : ULongToHandle(ul) ?
>
> Thanks a lot by advance (^_^)
>
> ps : Sorry for my poor level in english.

From: Maxim S. Shatskih on
> Someone could confirm me that for compile a driver 64 bit Vista Seven, it's
> necessary to build it with "WDK 7600 >> build environnement >> Windows Server
> 2003" and select "X64 Free or Checked" for generate "wnet64" directory ?

I don't know the smartcard drivers in particular, but usually old driver binary (if it is not using some hard undocumented things like EPROCESS structure offsets) just plain work being installed on a new OS.

The major exception are technology changes. For instance, NDIS5 driver will work badly on Vista+, and TDI filters will not filter half of the traffic (with Vista+, not all TCP/IP capable software are TDI clients). So are XPDM -> WDDM.

I don't know whether there was some major technology changes in smartcard stack in Vista+.

> If I use a computer with Intel processor, I can compile the driver with X64
> ? or necessarily with IA64 ?

IA64 is Itanium. The usual 64-bit machine is x64.

> XP 64bit, but when I try to install it to Vista I have an error code 39 and
> the same error status with seven (value 52)

Signature issue? try on 32bit Vista.

--
Maxim S. Shatskih
Windows DDK MVP
maxim(a)storagecraft.com
http://www.storagecraft.com