It was mentioned that changing resolutions at runtime was almost impossibly difficult. Either you entered V86 (only applicable for Pmode), or you were screwed (if you're into 64 bit. Long mode), because switching into real mode from P/Long Mode is a really painful procedure.
I came across an article where the structure of the Real Mode IVT was explained, and I realized that there could be a VERY simple way to change video modes during OS full swing running. The IVT is simply a table that holds the segment, and offset to the function code in the BIOS shadow area.
I haven't tested this yet, or even made an attempt to, but...isn't it logical that you should be able to:
1. Lookup the location of the VGA interrupt from the IVT,
2. Copy the bytes at the segment:offset address indicated (just copy, say, 1K. You'd definitely get the whole set of functions.)
3. And use that in P/Long mode?
If the problem is that the code may be in 16bit, with 16 bit alignment, then it can be easily solved by simply copying two bytes at a time, and inserting 2 NULL bytes after each two code bytes. The instruction set is the same. So there would be no problem where the CPU's running of the code is concerned.
I could be missing something, but if not, then I got a great idea for my OS, and all of yours.

EDIT: Oh, and as a side note, I'll just mention that I've moved form the C++ party to the C party where OSDev is concerned.