At the completion of an application or hard-error pop-up (see VioPopUp), the OS/2 operating system notifies the session that was originally interrupted for the pop-up to restore its mode. The return from VioModeWait provides that notification. The thread that issued the call must perform the restore and then immediately reissue VioModeWait.
When an application's VioModeWait thread is notified, the thread must restore its video mode, state, and modified display-adapter registers. An application's VioModeWait thread does not restore the physical display buffer. The OS/2 operating system saves and/or restores the physical display buffer over a pop-up.
Only one process for a session can issue VioModeWait. The first process that issues VioModeWait becomes the owner of this function. (See VioModeUndo.)
An application must issue VioModeWait only if it writes directly to the registers on the display adapter. Otherwise, the application can allow the OS/2 operating system to perform the required restoration by not issuing VioModeWait.
When an application issues VioModeWait, it is also required to issue VioSavRedrawWait to be notified at screen switch time to perform a full save or restoration (see VioSavRedrawWait). Two application threads must be dedicated to performing these operations.