[ros-dev] Problem with _IO_STACK_LOCATION defines in winddk.h

Wiljan Derks wiljan.derks at gmail.com
Fri Feb 26 16:51:16 CET 2010


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



More information about the Ros-dev mailing list