![[Toc]](../../toc.gif)
![[Index]](/idx.gif)
Overview
The VIDEOPMI interface is procedurally represented by the exported
functions of its main handler-VIDEOPMI.DLL. This handler provides both
32-bit and 16-bit entry points for setting a video mode, loading fonts,
and saving and restoring the video state. The handler provides a mode
query function and a software interrupt function, which allows for
execution of real-mode software interrupts, such as VIDEO BIOS, from the
protect mode.
VIDEOPMI.DLL imports the device-specific function from the underlying
vendor- or IBM-provided PMI subsystem. This subsystem is comprised of any
of the following:
1. Flat .PMI file with no code imports.
Although VIDEOPMI does not mandate the .PMI file name, at the moment
SVGA Install and Configuration mandates \OS2\SVGADATA.PMI. Example:
Any OS/2 2.x .PMI file.
2. Flat .PMI file with imported code sections from a dynamic link
library (DLL).
This is called a HYBRID .PMI file. Imported functions are private to
the PMI subsystem and conform to the IMPORTPMI prototype as
described in the SVGADEFS.H header file. Example: Any OS/2 3.x .PMI
file.
3. Flat .PMI file with imported code sections from a DLL that chains
into VIDEOPMI.
This is called a META-HYBRID .PMI file. The shared library exports a
"LoadAdapter" function, which signals to VIDEOPMI that the handler
wishes to engage in chaining VIDEOPMI's calls. The handler is passed
the VIDEOPMI's calling function table and can modify the table by
replacing entries with its own entry points. When these entry points
are invoked, the handler can implement the call or pass it back to
VIDEOPMI. Example: A .PMI file generated by SVGAOEM.EXE in the DDK.
4. META handler alone, without a flat file.
When VIDEOPMI's PMIREQUEST_LOADPMIFILE is passed a .DLL name and the
specified shared library exports and successfully handles the
"LoadAdapter" call, the PMI subsystem requires no flat file. This
method of customizing the PMI subsystem is not in use because SVGA
install, video configuration, and the virtual driver still make
assumptions and use the flat .PMI file. Example: OEMPMI.DLL in the
DDK.
For a full description of VIDEOPMI's procedural interface, see
VIDEOPMI.DLL Exported Functions.
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs