From a67875884f7befdda9efeca5143f756b4bfdde2a Mon Sep 17 00:00:00 2001 From: Dmitry Chapyshev Date: Fri, 29 May 2009 17:25:03 +0000 Subject: [PATCH] - Implement IOCTL_KEYBOARD_QUERY_ATTRIBUTES (not used yet, see FIXME comment) - Add KeyboardAttributes to I8042_KEYBOARD_EXTENSION svn path=/trunk/; revision=41199 --- reactos/drivers/input/i8042prt/i8042prt.h | 2 ++ reactos/drivers/input/i8042prt/keyboard.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/reactos/drivers/input/i8042prt/i8042prt.h b/reactos/drivers/input/i8042prt/i8042prt.h index 58201803e24..7ea45abadb0 100644 --- a/reactos/drivers/input/i8042prt/i8042prt.h +++ b/reactos/drivers/input/i8042prt/i8042prt.h @@ -147,6 +147,8 @@ typedef struct _I8042_KEYBOARD_EXTENSION INTERNAL_I8042_HOOK_KEYBOARD KeyboardHook; /* FIXME: IsrWritePort ignored */ KDPC DpcKeyboard; + KEYBOARD_ATTRIBUTES KeyboardAttributes; + KEYBOARD_INDICATOR_PARAMETERS KeyboardIndicators; KEYBOARD_SCAN_STATE KeyboardScanState; diff --git a/reactos/drivers/input/i8042prt/keyboard.c b/reactos/drivers/input/i8042prt/keyboard.c index 0d2eba6cfd8..1c241c17aa4 100644 --- a/reactos/drivers/input/i8042prt/keyboard.c +++ b/reactos/drivers/input/i8042prt/keyboard.c @@ -636,6 +636,20 @@ cleanup: 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; }