Author: dchapyshev
Date: Fri May 29 21:25:03 2009
New Revision: 41199
URL:
http://svn.reactos.org/svn/reactos?rev=41199&view=rev
Log:
- Implement IOCTL_KEYBOARD_QUERY_ATTRIBUTES (not used yet, see FIXME comment)
- Add KeyboardAttributes to I8042_KEYBOARD_EXTENSION
Modified:
trunk/reactos/drivers/input/i8042prt/i8042prt.h
trunk/reactos/drivers/input/i8042prt/keyboard.c
Modified: trunk/reactos/drivers/input/i8042prt/i8042prt.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/input/i8042prt/i80…
==============================================================================
--- trunk/reactos/drivers/input/i8042prt/i8042prt.h [iso-8859-1] (original)
+++ trunk/reactos/drivers/input/i8042prt/i8042prt.h [iso-8859-1] Fri May 29 21:25:03 2009
@@ -147,6 +147,8 @@
INTERNAL_I8042_HOOK_KEYBOARD KeyboardHook; /* FIXME: IsrWritePort ignored */
KDPC DpcKeyboard;
+ KEYBOARD_ATTRIBUTES KeyboardAttributes;
+
KEYBOARD_INDICATOR_PARAMETERS KeyboardIndicators;
KEYBOARD_SCAN_STATE KeyboardScanState;
Modified: trunk/reactos/drivers/input/i8042prt/keyboard.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/input/i8042prt/key…
==============================================================================
--- trunk/reactos/drivers/input/i8042prt/keyboard.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/input/i8042prt/keyboard.c [iso-8859-1] Fri May 29 21:25:03 2009
@@ -636,6 +636,20 @@
case IOCTL_KEYBOARD_QUERY_ATTRIBUTES:
{
DPRINT1("IOCTL_KEYBOARD_QUERY_ATTRIBUTES not implemented\n");
+#if 0
+ /* FIXME: KeyboardAttributes are not initialized anywhere */
+ TRACE_(I8042PRT, "IRP_MJ_INTERNAL_DEVICE_CONTROL /
IOCTL_KEYBOARD_QUERY_ATTRIBUTES\n");
+ if (Stack->Parameters.DeviceIoControl.OutputBufferLength <
sizeof(KEYBOARD_ATTRIBUTES))
+ {
+ Status = STATUS_BUFFER_TOO_SMALL;
+ break;
+ }
+
+ *(PKEYBOARD_ATTRIBUTES) Irp->AssociatedIrp.SystemBuffer =
DeviceExtension->KeyboardAttributes;
+ Irp->IoStatus.Information = sizeof(KEYBOARD_ATTRIBUTES);
+ Status = STATUS_SUCCESS;
+ break;
+#endif
Status = STATUS_NOT_IMPLEMENTED;
break;
}