So Im trying to compile a kernel mode driver I'm writing against the ddk rather than using vs.net.
First off, to use visual studio, read:
http://tiger.la.asu.edu/Quick_Ref/DeviceDriver.pdf
as well as there is a nice batch at http://www.osronline.com/article.cfm?article=43
but everyone says "hey - use the ddk - that what the compiler is there for"
Ok, so I keep getting an error on this line.
PHYSICAL_ADDRESS PhysicalAddress; <-- error here -
PhysicalAddress = MmGetPhysicalAddress((void*)block);
error:
error C2275: 'PHYSICAL_ADDRESS' : illegal use of this type as an expression
hmm... its used throughout the ddk samples that I can build. So I try PVOID, void*, ULONG all with the same result.
Then it occurs to me - the types are recognized, how about moving the defs to the top of the procedure (sorry - I've been so used to modern compilers
where you can gladly declare vars anywhere) and voila. Thats an hour of my life I'll never get back - thanks ddk guys for packaging that wonderful compiler with the ddk!!