My guess is the the Apple provided Runtime DXE will NOT convert the pointers on my Runtime Table, it will only convert them on the original Runtime Table. So I'm converting all the pointers in my RS table.
My original problem was that the DXE was unloaded on ExitBootServices since the USB Handle from which the DXE was loaded disappeared. I wrote a new loader that loads the DXE to memory and executes it straight from there. It does not free the memory pool before exiting so the memory buffer containing the DXE remains allocated. It's also allocated as EfiRuntimeCode, so that the OS doesn't mess it up.
You have 3 posts left!
24 hour wait period, but if you go to my profile I put my email up for you.
Hmm. Something about that makes me think to check SMBIOS, I've gotta do some more reading.