Jump to content

DosDevConfig: Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
Ak120 (talk | contribs)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Description==
Gets information about attached devices.
Gets information about attached devices.


==Syntax==
==Syntax==
  #define INCL_DOSPROCESS
  DosDevConfig(pdevinfo, item)
#include <os2.h>
PVOID    pdevinfo;  /*  Address of the area where the information is returned. */
ULONG    item;      /*  Device information to be returned. */
APIRET    ulrc;      /*  Return Code. */
ulrc = DosDevConfig(pdevinfo, item);


==Parameters==
==Parameters==
; '''pdevinfo (PVOID) - output''' : Address of the area where the information is returned.
;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.
: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.
;item (ULONG) - input: Device information to be returned.
:This parameter has one of the possible values:
:This parameter has one of the possible values:
::0 DEVINFO_PRINTER: Number of parallel or printer ports.
::0 DEVINFO_PRINTER: Number of parallel or printer ports.
::1 DEVINFO_RS232: Number of RS232 ports.
::1 DEVINFO_RS232: Number of RS232 ports.
::2 DEVINFO_FLOPPY: Number of diskette drives.
::2 DEVINFO_FLOPPY: Number of diskette drives.
Line 30: Line 22:


==Return Code==
==Return Code==
'''ulrc (APIRET) - returns'''
;ulrc (APIRET) - return:DosDevConfig returns one of the following values:
 
DosDevConfig returns one of the following values:
* 0 - NO_ERROR
* 0 - NO_ERROR
* 87 - ERROR_INVALID_PARAMETER
* 87 - ERROR_INVALID_PARAMETER
Line 38: Line 28:
==Example Code==
==Example Code==
This example gets information about the installed devices and displays it. Some return code checking was omitted for brevity.
This example gets information about the installed devices and displays it. Some return code checking was omitted for brevity.
<pre>
<code>
  #define INCL_DOSDEVICES  /* Device values */
  #define INCL_DOSDEVICES  /* Device values */
  #define INCL_DOSERRORS    /* Error values */
  #define INCL_DOSERRORS    /* Error values */
  #include <os2.h>
  #include <os2.h>
  #include <stdio.h>
  #include <stdio.h>
 
int main(VOID) {
int main(VOID) {
  BYTE    Model      = 0,  /* Model number */
  BYTE Model      = 0,  /* Model number */
         SubModel  = 0,  /* Submodel */
         SubModel  = 0,  /* Submodel */
         Adapter    = 0,  /* Display adapter type */
         Adapter    = 0,  /* Display adapter type */
         CoProc    = 0,  /* Math coprocessor installed? */
         CoProc    = 0,  /* Math coprocessor installed? */
         Printers  = 0;  /* Number of printers */
         Printers  = 0;  /* Number of printers */
 
APIRET rc         = NO_ERROR; /* Return code */
  APIRET rc       = NO_ERROR; /* Return code */
 
    rc = DosDevConfig(&amp;Model, DEVINFO_MODEL);
  rc = DosDevConfig(&Model, DEVINFO_MODEL);
    if (rc != NO_ERROR) {
  if (rc != NO_ERROR) {
       printf("DosDevConfig error:  return code = %u\n", rc);
       printf("DosDevConfig error:  return code = %u\n", rc);
       return 1;
       return 1;
    }
  }
 
    rc = DosDevConfig(&amp;SubModel, DEVINFO_SUBMODEL);
  rc = DosDevConfig(&SubModel, DEVINFO_SUBMODEL);
    printf("    Model/SubModel:  %d / %d\n", Model, SubModel);
  printf("    Model/SubModel:  %d / %d\n", Model, SubModel);
 
    rc = DosDevConfig(&amp;Adapter, DEVINFO_ADAPTER);
  rc = DosDevConfig(&Adapter, DEVINFO_ADAPTER);
    printf("      Display type:  %s\n", (Adapter ? "Color" : "Monochrome"));
  printf("      Display type:  %s\n", (Adapter ? "Color" : "Monochrome"));
 
    rc = DosDevConfig(&amp;CoProc, DEVINFO_COPROCESSOR);
  rc = DosDevConfig(&CoProc, DEVINFO_COPROCESSOR);
    printf(" Math co-processor?  %s\n", (CoProc ? "Yes" : "No"));
  printf(" Math co-processor?  %s\n", (CoProc ? "Yes" : "No"));
 
    rc = DosDevConfig(&amp;Printers, DEVINFO_PRINTER);
  rc = DosDevConfig(&Printers, DEVINFO_PRINTER);
    printf("Number of printers:  %d\n", Printers);
  printf("Number of printers:  %d\n", Printers);
 
    return NO_ERROR;
  return NO_ERROR;
}
}
</pre>
</code>


==Related Functions==
==Related Functions==

Latest revision as of 07:13, 16 December 2018

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