The following video IOCtls are defined and supported by the SCREENDD$ device driver, by way of the DosDevIOCtl call. The IOCtl category code is 80h (defined as SCREENDD_CATEGORY).

The function codes within the SCREENDD_CATEGORY are:

┌──────────┬──────────────────────────────────────────────────┐
│Function  │Description                                       │
├──────────┼──────────────────────────────────────────────────┤
│00h       │Get Current Video Memory Bank                     │
├──────────┼──────────────────────────────────────────────────┤
│01h       │Set Current Video Memory Bank                     │
├──────────┼──────────────────────────────────────────────────┤
│02h-07h   │Reserved                                          │
├──────────┼──────────────────────────────────────────────────┤
│08h       │Return Adapter Video Configuration                │
├──────────┼──────────────────────────────────────────────────┤
│09h       │Return Manufacturer-Specific Adapter Data         │
├──────────┼──────────────────────────────────────────────────┤
│0Ah       │Update Adapter Video Memory Information           │
├──────────┼──────────────────────────────────────────────────┤
│0Bh       │Return Linear Address Mapped to Physical Address  │
├──────────┼──────────────────────────────────────────────────┤
│0Ch-7Fh   │Reserved                                          │
└──────────┴──────────────────────────────────────────────────┘

An example of the DosDevIOCtl calling convention for the Screen IOCtls follows:

──────────────────────────────────────────────────────────────
int PASCAL near videoIoctl(VOID *data,VOID *parm,USHORT function)
{
  unsigned hScreenDD;                  /* handle of SCREENDD$ dev driver */
  unsigned OpenAction;                 /* action taken to open device    */
  unsigned rc;                         /* function return code           */


  if (!(rc = DosOpen(SCREENDD_NAME, (PHFILE)&hScreenDD, (PUSHORT)&OpenAction,
     NO_SIZE, NO_ATTRIBUTES, OPEN_IF_EXISTS, NO_INHERIT+DENY_NONE+READ_WRITE,
     RESERVED_LONG)))
  {
    rc = DosDevIOCtl(data,
                     parm,
                     function,
                     SCREENDD_CATEGORY,
                     (HFILE)hScreenDD);
    DosClose(hScreenDD);
  }
  return (rc);

──────────────────────────────────────────────────────────────


[Back] [Next]