A couple questions as I set out trying to write a file filter driver:

Is there a particular reason for defining structures in the module when you have to declare APIs in a TLB?

It's weird using void* for typed parameters lol... and it would save a lot of time with fewer conversion changes to types to have them in TLB.


Second: Since I can't use the runtime, I can't use VarPtr, correct? (Unless it can possibly be called as a regular DLL import?) How could I get the address of a structure without it, for the purpose of assigning a pointer to a FAST_IO_DISPATCH type to DRIVER_OBJECT.FastIoDispatch?