## Display Device Driver Reference for OS/2

[prev][next][parent][TOC]

### Virtual Keyboard Device Driver Services

The virtual video device driver utilizes the Post Peek and Post Read requests from the virtual keyboard device driver to post events to the DOS Session Window Manager when the windowed DOS session video state changes. In addition to generating the VVDEVENT_INPUT event to the DOS Session Window Manager to adjust window orientation, these notifications also serve to suggest to the virtual video device driver when to check for palette and LVB changes, which generate VVDEVENT_PALETTE and VVDEVENT_LVB events.

The virtual keyboard device driver uses the Post Paste request to indicate whether paste operations can start or end. The virtual video device driver posts the VVDEVENT_PASTE or VVDEVENT_ENDPASTE event to the DOS Session Window Manager, based on the type of paste operation requested. The virtual video device driver provides the following VDHRequestVDD services for the virtual keyboard device driver:

         VDHRequestVDD
         (
            HVDD hvddVideo,
            HVDM hvdm,
            INT  iFunc,     /* Virtual video device               */
                            /* driverEVREQ_POSTPEEK (1)           */
            BOOL fAvail,    /* TRUE if ROM BIOS buffer is not     */
                            /* empty.                             */
            PVOID pReqOut   /* Undefined.                         */
         );                 /* Returns TRUE.                      */

         VDHRequestVDD
         (
            HVDD hvddVideo,
            HVDM hvdm,
            INT  iFunc,     /* Virtual video device               */
                            /* driverEVREQ_POSTREAD (2)           */
            BOOL fAvail,    /* TRUE if ROM BIOS buffer is not     */
                            /* empty.                             */
            PVOID pReqOut   /* Undefined.                         */
         );                 /* Returns TRUE.                      */

         VDHRequestVDD
         (
            HVDD hvddVideo,
            HVDM hvdm,
            INT  iFunc,     /* Virtual video device               */
                            /* driverEVREQ_POSTPASTE (3)          */
            BOOL fContinue, /* TRUE to continue pasting,          */
                            /* FALSE to end.                      */
            PVOID pReqOut   /* Undefined.                         */
         );                 /* Returns TRUE.                      */

The PEEK and READ notifications occur prior to the actual operation; fAvail is TRUE if the ROM BIOS input buffer contains data, and FALSE if empty. In addition to generating VVDEVENT_INPUT events for the DOS Session Window Manager to adjust window orientation, these notifications also serve to suggest to the virtual video device driver when to check for changes in video context.

For the PASTE notification, fContinue is TRUE if pasting can continue (that is, buffer space is now available), and FALSE if pasting should be terminated (that is, the user pressed ESC). In the first case, the virtual video device driver posts VVDEVENT_PASTE to the DOS Session Window Manager, and in the second case, VVDEVENT_ENDPASTE.

    /--- DESIGN NOTE ------------------------------------------\

    |                                                          |

    |   In the current implementation, the fAvail parameters   |

    |   are ignored by the virtual video device driver.  It    |

    |   matters only whether a PEEK or READ is occurring.      |

    |                                                          |

    \----------------------------------------------------------/