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 19: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; }