Emanuele Aliberti wrote:
Alex Ionescu wrote:
Apoligies accepted.
This, once again, suggests to add detailed comments to code changes when committing, or fixing a commit one assumes is wrong.
I assumed it was clear to anyone checking that *all* the other exported objects were *POINTERS*. It also makes sense that NT would export a pointer, not the actual structure. Since when does an app export a whole object?
I, first of all, had to say I had changed the type of LpcPortObjectType because of the w32api header and the fact that DATA symbols are pointers.
DATA symbols are pointers, and that's exactly what I've done. In the old code, the LpcPortObjectType was exported as a whole type instead.
When I saw the excerpts from the DDK headers posted by Filip, I realized I was fooled by a wrong definition. I should have checked that first! I assume these two definitions *are* different, aren't they?
extern POBJECT_TYPE *IoFileObjectType; /* <- Official DDK headers */ extern NTOSAPI POBJECT_TYPE IoFileObjectType; /* <- W32API headers */
Slightly different in the way you access the object, but both export the pointer.
Alex, you say, in another reply, we will build soon ros using the w32api headers. If so, should this be fixed?
Eventually, yes, but right now I just want it to be able to build.
Best regards, Alex Ionescu