I am trying to build 64 drivers using gcc.
I actually got a driver working now but had to fix a problem in winddk.h
winddk.h has the following line just before "typedef struct
_IO_STACK_LOCATION":
#include <pshpack4.h>
That causes gcc to ignore the "POINTER_ALIGNMENT" attributes used
inside this struct.
So it does not align these fields to the next 8 byte multiple as
required for 64 bit.
I now removed the "#include <pshpack4.h>" and the "#include
<poppack.h>" at the end
and that make the structure work properly on 64 bit for at least the iocontrol.
Wiljan