views:

29

answers:

1

Hi all,

I've developed a driver that is compiled for 32 bits system. The driver is unidriver based.

Does anyone knows what should be needed to get the driver compatible with 64 bits? What changes should I need to do to the code, if any? or is it just a matter of compiling it with a 64 bits version of the DDK?

Thanks in advance.

Nuno

A: 

The first step is to open the project with Visual Studio and add x64 configuration.

Then, test and see if it builds (probably not).

The most common errors (I've come across) are these:

  • DWORD->DWORD_PTR + all related Win32 api functions that have a long version
  • pointer truncation: will issue warnings on msvc, errors on gcc: replace long/int with (u)intptr_t where applicable
  • check out this helpful MSDN link
rubenvb