VGA-Compatible Miniport Driver's HwVidStartIO
When the user switches a full-screen MS-DOS application back to running in a window, a VGA-compatible miniport driver's HwVidStartIO function is sent a VRP with the I/O control code IOCTL_VIDEO_SAVE_HARDWARE_STATE. The miniport driver must store the state of the adapter in case the user switches the application to full-screen mode again.
Note that the miniport driver's SvgaHwIoPortXxx function might have buffered a sequence of application INs and/or OUTs, as described in Validating Instructions in SvgaHwIoPortXxx, when its HwVidStartIO function is called to save the adapter state. In these circumstances, the miniport driver should save the current state, including the buffered instructions, so that the SvgaHwIoPortXxx functions can resume validation operations exactly where they left off if the user switches the application to full-screen mode again.
When the miniport driver completes a save operation, the port driver automatically disables the current IOPM for VDMs and the miniport driver's SvgaHwIoPortXxx functions. The video port driver restores the IOPM automatically if the application is switched to full-screen mode again. It also resumes calling the miniport driver's SvgaHwIoPortXxx function, after it calls the miniport driver's HwVidStartIO function with the IOCTL_VIDEO_RESTORE_HARDWARE_STATE request.