Index: drivers/input/i8042prt/keyboard.c =================================================================== --- drivers/input/i8042prt/keyboard.c (revision 63313) +++ drivers/input/i8042prt/keyboard.c (working copy) @@ -694,7 +694,7 @@ { TRACE_(I8042PRT, "IRP_MJ_INTERNAL_DEVICE_CONTROL / IOCTL_KEYBOARD_QUERY_INDICATORS\n"); - if (Stack->Parameters.DeviceIoControl.InputBufferLength < sizeof(KEYBOARD_INDICATOR_PARAMETERS)) + if (Stack->Parameters.DeviceIoControl.OutputBufferLength < sizeof(KEYBOARD_INDICATOR_PARAMETERS)) { Status = STATUS_BUFFER_TOO_SMALL; } Index: win32ss/user/ntuser/keyboard.c =================================================================== --- win32ss/user/ntuser/keyboard.c (revision 63331) +++ win32ss/user/ntuser/keyboard.c (working copy) @@ -61,7 +61,7 @@ while (pRet) { - Status = NtDeviceIoControlFile(hKeyboardDevice, + Status = ZwDeviceIoControlFile(hKeyboardDevice, NULL, NULL, NULL, @@ -139,7 +139,7 @@ gIndicators.LedFlags = ~LedFlag; /* Update the lights on the hardware */ - Status = NtDeviceIoControlFile(hKeyboardDevice, + Status = ZwDeviceIoControlFile(hKeyboardDevice, NULL, NULL, NULL, @@ -164,10 +164,10 @@ { NTSTATUS Status; IO_STATUS_BLOCK Block; -/* + IntKeyboardGetIndicatorTrans(hKeyboardDevice, &gpKeyboardIndicatorTrans); - Status = NtDeviceIoControlFile(hKeyboardDevice, + Status = ZwDeviceIoControlFile(hKeyboardDevice, NULL, NULL, NULL, @@ -178,8 +178,9 @@ if (!NT_SUCCESS(Status)) { - WARN("NtDeviceIoControlFile() failed, ignored\n"); + ERR("ZwDeviceIoControlFile() failed with 0x%08x, ignored\n", Status); } + SET_KEY_LOCKED(gafAsyncKeyState, VK_CAPITAL, gIndicators.LedFlags & KEYBOARD_CAPS_LOCK_ON); SET_KEY_LOCKED(gafAsyncKeyState, VK_NUMLOCK, @@ -186,9 +187,9 @@ gIndicators.LedFlags & KEYBOARD_NUM_LOCK_ON); SET_KEY_LOCKED(gafAsyncKeyState, VK_SCROLL, gIndicators.LedFlags & KEYBOARD_SCROLL_LOCK_ON); -*/ + // FIXME: Need device driver to work! HID support more than one!!!! - Status = NtDeviceIoControlFile(hKeyboardDevice, + Status = ZwDeviceIoControlFile(hKeyboardDevice, NULL, NULL, NULL, @@ -199,8 +200,9 @@ if (!NT_SUCCESS(Status)) { - ERR("NtDeviceIoControlFile() failed, ignored\n"); + ERR("ZwDeviceIoControlFile() failed with 0x%08x, ignored\n", Status); } + ERR("Keyboard type %d, subtype %d and number of func keys %d\n", gKeyboardInfo.KeyboardIdentifier.Type, gKeyboardInfo.KeyboardIdentifier.Subtype,