Set the readed size within the irp.
Modified: trunk/reactos/drivers/input/keyboard/keyboard.c
_____
Modified: trunk/reactos/drivers/input/keyboard/keyboard.c
--- trunk/reactos/drivers/input/keyboard/keyboard.c 2005-04-30
17:30:05 UTC (rev 14882)
+++ trunk/reactos/drivers/input/keyboard/keyboard.c 2005-04-30
17:37:11 UTC (rev 14883)
@@ -457,7 +457,6 @@
DPRINT("KbdDpcRoutine(DeviceObject %x, Irp %x)\n",
DeviceObject,Irp);
Irp->IoStatus.Status = STATUS_SUCCESS;
- Irp->IoStatus.Information = 0;
IoCompleteRequest(Irp,IO_NO_INCREMENT);
IoStartNextPacket(DeviceObject,FALSE);
}
@@ -592,8 +591,9 @@
DPRINT("KeysRequired %d KeysRead %x\n",KeysRequired,KeysRead);
if (KeysRead==KeysRequired)
{
- PDEVICE_OBJECT DeviceObject = (PDEVICE_OBJECT) Context;
+ PDEVICE_OBJECT DeviceObject = (PDEVICE_OBJECT) Context;
KeInsertQueueDpc(&KbdDpc,DeviceObject,CurrentIrp);
+ CurrentIrp->IoStatus.Information = KeysRead *
sizeof(KEY_EVENT_RECORD);
CurrentIrp=NULL;
}
CHECKPOINT;
@@ -721,6 +721,7 @@
}
if
((stk->Parameters.Read.Length/sizeof(KEY_EVENT_RECORD))==NrToRead)
{
+ Irp->IoStatus.Information = stk->Parameters.Read.Length;
return(TRUE);
}
@@ -743,7 +744,6 @@
{
KIRQL oldIrql;
Irp->IoStatus.Status = STATUS_SUCCESS;
- Irp->IoStatus.Information = 0;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
oldIrql = KeGetCurrentIrql();
if (oldIrql < DISPATCH_LEVEL)