KbdGetHWId: Difference between revisions
Appearance
Created page with "==Description== Returns the attached keyboard's hardware-generated Identification value. ==Syntax== <PRE> KbdGetHWId (KeyboardID, KbdHandle) </PRE> ==Parameters== ; K..." |
mNo edit summary |
||
Line 1: | Line 1: | ||
Returns the attached keyboard's hardware-generated Identification value. | Returns the attached keyboard's hardware-generated Identification value. | ||
==Syntax== | ==Syntax== | ||
KbdGetHWId (KeyboardID, KbdHandle) | |||
KbdGetHWId | |||
==Parameters== | ==Parameters== | ||
; | ;KeyboardID (PKBDHWID) - input : Pointer to the caller's data area where the following structure and data values are: | ||
:length (USHORT) - input/output : On input, this field should contain the length of the KeyboardID structure. The minimum input length value allowed is 2. On output, this field contains the actual number of bytes returned. | |||
length (USHORT) - input/output : On input, this field should contain the length of the KeyboardID structure. The minimum input length value allowed is 2. On output, this field contains the actual number of bytes returned. | :keybdid (USHORT) - output : OS/2 supported keyboards and their hardware generated IDs are as follows: | ||
'''ID Keyboard''' | |||
keybdid (USHORT) - output : OS/2 supported keyboards and their hardware generated IDs are as follows: | 0000H Undetermined keyboard type | ||
0001H PC-AT Standard Keyboard | |||
'''ID | AB41H 101 Key Enhanced Keyboard | ||
0000H | AB41H 102 Key Enhanced Keyboard | ||
0001H | AB54H 88 and 89 Key Enhanced Keyboards | ||
AB41H | AB85H 122 Key Enhanced Keyboard | ||
AB41H | :reserved (USHORT) : Reserved and returned set to zero. | ||
AB54H | :reserved (USHORT) : Reserved and returned set to zero. | ||
AB85H | ;KbdHandle (HKBD) - input : Word identifying the logical keyboard. | ||
reserved (USHORT) : Reserved and returned set to zero. | |||
reserved (USHORT) : Reserved and returned set to zero. | |||
; KbdHandle (HKBD) - input : Word identifying the logical keyboard. | |||
==Return Code== | ==Return Code== | ||
rc (USHORT) - return | rc (USHORT) - return | ||
Return code descriptions are: | Return code descriptions are: | ||
* 0 NO_ERROR | |||
* 0 | * 373 ERROR_KBD_PARAMETER | ||
* 373 | * 447 ERROR_KBD_KEYBOARD_BUSY | ||
* 447 | * 464 ERROR_KBD_DETACHED | ||
* 464 | * 504 ERROR_KBD_EXTENDED_SG | ||
* 504 | |||
==Remarks== | ==Remarks== | ||
Line 85: | Line 72: | ||
Returns WORD | Returns WORD | ||
</PRE> | </PRE> | ||
[[Category: | [[Category:Kbd]] |
Revision as of 06:41, 12 February 2017
Returns the attached keyboard's hardware-generated Identification value.
Syntax
KbdGetHWId (KeyboardID, KbdHandle)
Parameters
- KeyboardID (PKBDHWID) - input
- Pointer to the caller's data area where the following structure and data values are:
- length (USHORT) - input/output : On input, this field should contain the length of the KeyboardID structure. The minimum input length value allowed is 2. On output, this field contains the actual number of bytes returned.
- keybdid (USHORT) - output : OS/2 supported keyboards and their hardware generated IDs are as follows:
ID Keyboard 0000H Undetermined keyboard type 0001H PC-AT Standard Keyboard AB41H 101 Key Enhanced Keyboard AB41H 102 Key Enhanced Keyboard AB54H 88 and 89 Key Enhanced Keyboards AB85H 122 Key Enhanced Keyboard
- reserved (USHORT) : Reserved and returned set to zero.
- reserved (USHORT) : Reserved and returned set to zero.
- KbdHandle (HKBD) - input
- Word identifying the logical keyboard.
Return Code
rc (USHORT) - return
Return code descriptions are:
- 0 NO_ERROR
- 373 ERROR_KBD_PARAMETER
- 447 ERROR_KBD_KEYBOARD_BUSY
- 464 ERROR_KBD_DETACHED
- 504 ERROR_KBD_EXTENDED_SG
Remarks
In past OS/2 releases, all keyboards could be supported by knowing the hardware family information available with keyboard IOCTL 77H. However, with the addition of the 122-key keyboard, recognition was not containable by hardware family information alone. The 122-key keyboard has a number of differences from other keyboards. Therefore, applications performing keystroke specific functions may need to determine specifically which keyboard is attached.
This function is of particular usefulness for applications providing Custom Translate Tables and mapping keyboard layouts.
Example Code
C Binding
typedef struct _KBDHWID { USHORT length; /* length in bytes of this structure */ USHORT kbd_id; /* attached keyboard's hardware ID (returned) */ USHORT reserved1; /* reserved (set to zero) */ USHORT reserved2; /* reserved (set to zero) */ }KBDHWID; #define INCL_KBD USHORT rc = KbdGetHWId(KeyboardID, KbdHandle); PKBDHWID KeyboardID; /* Keyboard ID structure (returned) */ HKBD KbdHandle; /* Keyboard handle */ USHORT rc; /* return code */
MASM Binding
KBDHWID struc length; dw ? ;length in bytes of this structure kbd_id; dw ? ;attached keyboard's hardware ID (returned) reserved1; dw ? ;reserved (set to zero) reserved2; dw ? ;reserved (set to zero) KBDHWID ends EXTRN KbdGetHWId:FAR INCL_KBD EQU 1 PUSH@ OTHER KeyboardID ;Keyboard ID structure (returned) PUSH WORD KbdHandle ;Keyboard handle CALL KbdGetHWId Returns WORD