SAVE_MESSAGE_MODE_STATE (Function 45)

Call With

EBX: Contains the VM handle (always the Windows VM).

EBP: Points to the Windows VM's Client Registers.

Return Values

Save everything that you use.

Remarks

Before this function is called, the Main VDD has called ENABLE_TRAPS to cause the mini-VDD to turn on its register virtualization code. When ENABLE_TRAPS is called, you should unconditionally virtualize all of the necessary registers and not allow physical writes to occur to them, even in the Windows VM. Subsequently, the Main VDD executes a totally virtualized mode change to the blue-screen message mode state (this is Mode 3 in single byte character set Windows and Mode 12h in double byte character set Windows). Even though no screen changes are evident, because the virtualized mode change occurred when the Windows VM was the currently executing VM, the message mode state for all of the virtualized Registers have been saved in the CB data structure for the Windows VM.

This function copies the virtualized states from the CB data structure and saves them in a special Message Mode state data structure which is located in the mini-VDD's data segment. The Message Mode structure should be an exact copy of the actual CB data structure. See the Video7 mini-VDD for an example of how to use this function.