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