DosDevConfig

From EDM2
Revision as of 05:13, 16 December 2018 by Ak120 (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Gets information about attached devices.

Syntax

DosDevConfig(pdevinfo, item)

Parameters

pdevinfo (PVOID) - output
Address of the area where the information is returned.
All returned device information is BYTE-sized, so this should be the address of a BYTE variable.
item (ULONG) - input
Device information to be returned.
This parameter has one of the possible values:
0 DEVINFO_PRINTER: Number of parallel or printer ports.
1 DEVINFO_RS232: Number of RS232 ports.
2 DEVINFO_FLOPPY: Number of diskette drives.
3 DEVINFO_COPROCESSOR: Presence of math coprocessor hardware:
0 No coprocessor hardware
1 Coprocessor hardware installed
4 DEVINFO_SUBMODEL: PC Submodel Type. The returned information is the system submodel byte.
5 DEVINFO_MODEL: PC Model Type. The returned information is the system model byte.
6 DEVINFO_ADAPTER: Type of primary display adapter:
0 Monochrome or printer adapter
1 Other

Return Code

ulrc (APIRET) - return
DosDevConfig returns one of the following values:
  • 0 - NO_ERROR
  • 87 - ERROR_INVALID_PARAMETER

Example Code

This example gets information about the installed devices and displays it. Some return code checking was omitted for brevity.

#define INCL_DOSDEVICES   /* Device values */
#define INCL_DOSERRORS    /* Error values */
#include <os2.h>
#include <stdio.h>

int main(VOID) {
  BYTE  Model      = 0,  /* Model number */
        SubModel   = 0,  /* Submodel */
        Adapter    = 0,  /* Display adapter type */
        CoProc     = 0,  /* Math coprocessor installed? */
        Printers   = 0;  /* Number of printers */

  APIRET rc        = NO_ERROR; /* Return code */

  rc = DosDevConfig(&Model, DEVINFO_MODEL);
  if (rc != NO_ERROR) {
      printf("DosDevConfig error:  return code = %u\n", rc);
      return 1;
  }

  rc = DosDevConfig(&SubModel, DEVINFO_SUBMODEL);
  printf("    Model/SubModel:  %d / %d\n", Model, SubModel);

  rc = DosDevConfig(&Adapter, DEVINFO_ADAPTER);
  printf("      Display type:  %s\n", (Adapter ? "Color" : "Monochrome"));

  rc = DosDevConfig(&CoProc, DEVINFO_COPROCESSOR);
  printf(" Math co-processor?  %s\n", (CoProc ? "Yes" : "No"));

  rc = DosDevConfig(&Printers, DEVINFO_PRINTER);
  printf("Number of printers:  %d\n", Printers);

  return NO_ERROR;
}

Related Functions