DosDevConfig: Difference between revisions
Appearance
m Ak120 moved page OS2 API:CPI:DosDevConfig to DosDevConfig |
mNo edit summary |
||
| Line 1: | Line 1: | ||
Gets information about attached devices. | Gets information about attached devices. | ||
==Syntax== | ==Syntax== | ||
DosDevConfig(pdevinfo, item) | |||
==Parameters== | ==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. | :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: | :This parameter has one of the possible values: | ||
::0 DEVINFO_PRINTER: | ::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) - 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 53: | Line 43: | ||
APIRET rc = NO_ERROR; /* Return code */ | APIRET rc = NO_ERROR; /* Return code */ | ||
rc = DosDevConfig(& | 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); | ||
| Line 59: | Line 49: | ||
} | } | ||
rc = DosDevConfig(& | rc = DosDevConfig(&SubModel, DEVINFO_SUBMODEL); | ||
printf(" Model/SubModel: %d / %d\n", Model, SubModel); | printf(" Model/SubModel: %d / %d\n", Model, SubModel); | ||
rc = DosDevConfig(& | rc = DosDevConfig(&Adapter, DEVINFO_ADAPTER); | ||
printf(" Display type: %s\n", (Adapter ? "Color" : "Monochrome")); | printf(" Display type: %s\n", (Adapter ? "Color" : "Monochrome")); | ||
rc = DosDevConfig(& | 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(& | rc = DosDevConfig(&Printers, DEVINFO_PRINTER); | ||
printf("Number of printers: %d\n", Printers); | printf("Number of printers: %d\n", Printers); | ||
Revision as of 18:41, 25 May 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;
}