VioGetPhysBuf
Bindings: C, MASM
This call gets addressability to the physical display buffer.
VioGetPhysBuf (DisplayBuf, Reserved)
DisplayBuf(PVIOPHYSBUF) - input/output
Address of the data structure that contains the physical display
buffer address and length on input and returns the selectors used to
address the display buffer.
displaybufaddr (PBYTE)
Address of the 32 bit start address (selector:offset) of the
physical display buffer passed as input. If displaybuflen is 0,
then displaybufaddr is the far address of the PhysBuf Block
described below.
displaybuflen (ULONG)
32 bit length of the physical display buffer. If displaybuflen is
0, then displaybufaddr is treated as the far address of the PhysBuf
Block described below and the Selector List is not present.
selectors (SEL)
Selector list.
Returns the selectors (each of word-length) that address the
physical display buffer. The first selector returned in the list,
addresses the first 64KB of the physical display buffer or
displaybuflen, whichever is smaller. If displaybuflen is greater
than 64KB, the second selector addresses the second 64KB.
The last selector returned in the list, addresses the remainder of
the display buffer. The application is responsible for ensuring
enough space is reserved for the selector list to accommodate the
specified buffer length.
PhysBuf Block (PhysBuf)
Address of the data structure. The PhysBuf Block is a variable
length data structure. The first word is the Length of the PhysBuf
Block in bytes. The remaining words of the structure are the
selectors that address the physical video buffer. If Length is
specified as 2, the required length of the PhysBuf Block is
returned in its place.
PhysBuf Block (USHORT)
Length of PhysBuf structure in bytes
selector (SEL)
First selector
selector (SEL)
Next selector
selector (SEL)
... ...
selector (SEL)
Last selector
Reserved (USHORT) - input
Reserved word of 0s.
rc (USHORT) - return
Return code descriptions are:
0 NO_ERROR
350 ERROR_VIO_PTR
429 ERROR_VIO_IN_BG
430 ERROR_VIO_ILLEGAL_DURING_POPUP
436 ERROR_VIO_INVALID_HANDLE
465 ERROR_VIO_DETACHED
494 ERROR_VIO_EXTENDED_SG
Remarks
If displaybuflen = 0, VioGetPhysBuf returns a selector that addresses the
physical display buffer corresponding to the current mode. One selector
is returned in Selector List. If a VioGetPhysBuf is issued after a
VioGetBuf, then all VioWrtXX calls will on longer be written to the LVB.
They will only be written to the physical display buffer. An application
uses VioGetPhysBuf to get addressability to the physical display buffer.
The selector returned by VioGetPhysBuf may be used only when an
application program is executing in the foreground. When an application
wants to access the physical display buffer, the application must call
VioScrLock. VioScrLock either waits until the program is running in the
foreground or returns a warning when the program is running in the
background. For more information refer to VioScrLock and VioScrUnLock.
The buffer range specified for the physical screen buffer must fall
between hex 'A0000' and 'BFFFF' inclusive. An application may issue
VioGetPhysBuf only when it is running in the foreground. An application
may issue VioGetPhysBuf more than once.
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs