Annotation of ntddk/src/input/inc/kbdmou.h, revision 1.1.1.1

1.1       root        1: /*++
                      2: 
                      3: Copyright (c) 1989  Microsoft Corporation
                      4: 
                      5: Module Name:
                      6: 
                      7:     kbdmou.h
                      8: 
                      9: Abstract:
                     10: 
                     11:     These are the structures and defines that are used in the
                     12:     keyboard class driver, mouse class driver, and keyboard/mouse port
                     13:     driver.
                     14: 
                     15: Author:
                     16: 
                     17:     lees
                     18: 
                     19: Revision History:
                     20: 
                     21: --*/
                     22: 
                     23: #ifndef _KBDMOU_
                     24: #define _KBDMOU_
                     25: 
                     26: #include <ntddkbd.h>
                     27: #include <ntddmou.h>
                     28: 
                     29: //
                     30: // Define the keyboard/mouse port device name strings.
                     31: //
                     32: 
                     33: #define DD_KEYBOARD_PORT_DEVICE_NAME    "\\Device\\KeyboardPort"
                     34: #define DD_KEYBOARD_PORT_DEVICE_NAME_U L"\\Device\\KeyboardPort"
                     35: #define DD_KEYBOARD_PORT_BASE_NAME_U   L"KeyboardPort"
                     36: #define DD_POINTER_PORT_DEVICE_NAME     "\\Device\\PointerPort"
                     37: #define DD_POINTER_PORT_DEVICE_NAME_U  L"\\Device\\PointerPort"
                     38: #define DD_POINTER_PORT_BASE_NAME_U    L"PointerPort"
                     39: 
                     40: //
                     41: // Define the keyboard/mouse class device name strings.
                     42: //
                     43: 
                     44: #define DD_KEYBOARD_CLASS_BASE_NAME_U   L"KeyboardClass"
                     45: #define DD_POINTER_CLASS_BASE_NAME_U    L"PointerClass"
                     46: 
                     47: //
                     48: // Define the keyboard/mouse resource class names.
                     49: //
                     50: 
                     51: #define DD_KEYBOARD_RESOURCE_CLASS_NAME_U             L"Keyboard"
                     52: #define DD_POINTER_RESOURCE_CLASS_NAME_U              L"Pointer"
                     53: #define DD_KEYBOARD_MOUSE_COMBO_RESOURCE_CLASS_NAME_U L"Keyboard/Pointer"
                     54: 
                     55: //
                     56: // Define the maximum number of pointer/keyboard port names the port driver 
                     57: // will use in an attempt to IoCreateDevice.
                     58: //
                     59: 
                     60: #define POINTER_PORTS_MAXIMUM  8
                     61: #define KEYBOARD_PORTS_MAXIMUM 8
                     62: 
                     63: //
                     64: // Define the port connection data structure.
                     65: //
                     66: 
                     67: typedef struct _CONNECT_DATA {
                     68:     IN PDEVICE_OBJECT ClassDeviceObject;
                     69:     IN PVOID ClassService;
                     70: } CONNECT_DATA, *PCONNECT_DATA;
                     71: 
                     72: //
                     73: // Define the service callback routine's structure.
                     74: //
                     75: 
                     76: typedef
                     77: VOID
                     78: (*PSERVICE_CALLBACK_ROUTINE) (
                     79:     IN PVOID NormalContext,
                     80:     IN PVOID SystemArgument1,
                     81:     IN PVOID SystemArgument2,
                     82:     IN OUT PVOID SystemArgument3
                     83:     );
                     84: 
                     85: //
                     86: // NtDeviceIoControlFile internal IoControlCode values for keyboard device.
                     87: //
                     88: 
                     89: #define IOCTL_INTERNAL_KEYBOARD_CONNECT        CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0080, METHOD_NEITHER, FILE_ANY_ACCESS)
                     90: #define IOCTL_INTERNAL_KEYBOARD_DISCONNECT CTL_CODE(FILE_DEVICE_KEYBOARD,0x0100, METHOD_NEITHER, FILE_ANY_ACCESS)
                     91: #define IOCTL_INTERNAL_KEYBOARD_ENABLE         CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0200, METHOD_NEITHER, FILE_ANY_ACCESS)
                     92: #define IOCTL_INTERNAL_KEYBOARD_DISABLE CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0400, METHOD_NEITHER, FILE_ANY_ACCESS)
                     93: 
                     94: //
                     95: // NtDeviceIoControlFile internal IoControlCode values for mouse device.
                     96: //
                     97: 
                     98: 
                     99: #define IOCTL_INTERNAL_MOUSE_CONNECT   CTL_CODE(FILE_DEVICE_MOUSE, 0x0080, METHOD_NEITHER, FILE_ANY_ACCESS)
                    100: #define IOCTL_INTERNAL_MOUSE_DISCONNECT        CTL_CODE(FILE_DEVICE_MOUSE, 0x0100, METHOD_NEITHER, FILE_ANY_ACCESS)
                    101: #define IOCTL_INTERNAL_MOUSE_ENABLE    CTL_CODE(FILE_DEVICE_MOUSE, 0x0200, METHOD_NEITHER, FILE_ANY_ACCESS)
                    102: #define IOCTL_INTERNAL_MOUSE_DISABLE   CTL_CODE(FILE_DEVICE_MOUSE, 0x0400, METHOD_NEITHER, FILE_ANY_ACCESS)
                    103: 
                    104: //
                    105: // Error log definitions (specific to the keyboard/mouse) for DumpData[0] 
                    106: // in the IO_ERROR_LOG_PACKET.
                    107: //
                    108: //     DumpData[1] <= hardware port/register
                    109: //     DumpData[2] <= {command byte || expected response byte}
                    110: //     DumpData[3] <= {command's parameter byte || actual response byte}
                    111: // 
                    112: //
                    113: 
                    114: #define KBDMOU_COULD_NOT_SEND_COMMAND  0x0000 
                    115: #define KBDMOU_COULD_NOT_SEND_PARAM    0x0001
                    116: #define KBDMOU_NO_RESPONSE             0x0002
                    117: #define KBDMOU_INCORRECT_RESPONSE      0x0004
                    118: 
                    119: //
                    120: // Define the base values for the error log packet's UniqueErrorValue field.
                    121: //
                    122: 
                    123: #define I8042_ERROR_VALUE_BASE        1000
                    124: #define INPORT_ERROR_VALUE_BASE       2000
                    125: #define SERIAL_MOUSE_ERROR_VALUE_BASE 3000
                    126: 
                    127: #endif // _KBDMOU_
                    128: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.