Jump to content

DosDevConfig: Difference between revisions

From EDM2
No edit summary
Line 1: Line 1:
==Description==
Gets information about attached devices.


==Syntax==
==Syntax==
Gets information about attached devices.


  #define INCL_DOSPROCESS
  #define INCL_DOSPROCESS
Line 13: Line 14:


==Parameters==
==Parameters==
'''pdevinfo (PVOID) - output'''
; '''pdevinfo (PVOID) - output''' : Address of the area where the information is returned.
 
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'''
; '''item (ULONG) - input''' : Device information to be returned.
 
Device information to be returned.


This parameter has one of the possible values:
This parameter has one of the possible values:


* DEVINFO_PRINTER Number of parallel or printer ports.
* 0 DEVINFO_PRINTERNumber of parallel or printer ports.
 
* DEVINFO_RS232
Number of RS232 ports.
 
* DEVINFO_FLOPPY
Number of diskette drives.
 
* DEVINFO_COPROCESSOR
Presence of math coprocessor hardware:
 
** No coprocessor hardware
** Coprocessor hardware installed
 
* 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
* 1 DEVINFO_RS232: Number of RS232 ports.
Type of primary display adapter:


** Monochrome or printer adapter
* 2 DEVINFO_FLOPPY: Number of diskette drives.
** Other


'''ulrc (APIRET) - returns'''
* 3 DEVINFO_COPROCESSOR: Presence of math coprocessor hardware:
** 0 No coprocessor hardware
** 1 Coprocessor hardware installed


Return Code.
* 4 DEVINFO_SUBMODEL: PC Submodel Type. The returned information is the system submodel byte. 5


DosDevConfig returns one of the following values:
* 5 DEVINFO_MODEL: PC Model Type. The returned information is the system model byte. 6


* NO_ERROR 87 - ERROR_INVALID_PARAMETER
* 6 DEVINFO_ADAPTER: Type of primary display adapter:
** 0 Monochrome or printer adapter
** 1 Other


For a full list of error codes, see Errors.
==Return Code==


==Return==
'''ulrc (APIRET) - returns'''
'''ulrc (APIRET) - returns'''
 
Return Code.


DosDevConfig returns one of the following values:
DosDevConfig returns one of the following values:


NO_ERROR
* 0 - NO_ERROR  
87
* 87 - ERROR_INVALID_PARAMETER  
 
ERROR_INVALID_PARAMETER  
 
For a full list of error codes, see Errors.


==Example Code==
==Example Code==
Line 81: Line 55:




<pre> #define INCL_DOSDEVICES  /* Device values */
<pre>  
#define INCL_DOSDEVICES  /* Device values */
  #define INCL_DOSERRORS    /* Error values */
  #define INCL_DOSERRORS    /* Error values */
  #include &lt;os2.h&gt;
  #include &lt;os2.h&gt;

Revision as of 17:47, 9 June 2016

Description

Gets information about attached devices.

Syntax

#define INCL_DOSPROCESS
#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

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
  • 5 DEVINFO_MODEL: PC Model Type. The returned information is the system model byte. 6
  • 6 DEVINFO_ADAPTER: Type of primary display adapter:
    • 0 Monochrome or printer adapter
    • 1 Other

Return Code

ulrc (APIRET) - returns

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