Revert 19324 and part of 19325...
Modified: trunk/reactos/drivers/input/kbdclass/kbdclass.c
Modified: trunk/reactos/ntoskrnl/io/pnpmgr.c

Modified: trunk/reactos/drivers/input/kbdclass/kbdclass.c
--- trunk/reactos/drivers/input/kbdclass/kbdclass.c	2005-11-18 18:51:31 UTC (rev 19327)
+++ trunk/reactos/drivers/input/kbdclass/kbdclass.c	2005-11-18 20:35:42 UTC (rev 19328)
@@ -329,7 +329,7 @@
 	DeviceExtension->ReadIsPending = FALSE;
 	DeviceExtension->InputCount = 0;
 	DeviceExtension->PortData = ExAllocatePool(NonPagedPool, DeviceExtension->DriverExtension->DataQueueSize * sizeof(KEYBOARD_INPUT_DATA));
-	Fdo->Flags |= DO_POWER_PAGABLE;
+	Fdo->Flags |= DO_POWER_PAGABLE | DO_BUFFERED_IO;
 	Fdo->Flags &= ~DO_DEVICE_INITIALIZING;
 
 	/* Add entry entry to HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\[DeviceBaseName] */
@@ -385,7 +385,7 @@
 		/* A read request is waiting for input, so go straight to it */
 		/* FIXME: use SEH */
 		RtlCopyMemory(
-			Irp->MdlAddress ? MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority) : Irp->UserBuffer,
+			Irp->MdlAddress ? MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority) : Irp->AssociatedIrp.SystemBuffer,
 			DataStart,
 			sizeof(KEYBOARD_INPUT_DATA));
 
@@ -585,7 +585,7 @@
 
 		/* FIXME: use SEH */
 		RtlCopyMemory(
-			Irp->MdlAddress ? MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority) : Irp->UserBuffer,
+			Irp->AssociatedIrp.SystemBuffer,
 			DeviceExtension->PortData - DeviceExtension->InputCount,
 			sizeof(KEYBOARD_INPUT_DATA));
 

Modified: trunk/reactos/ntoskrnl/io/pnpmgr.c
--- trunk/reactos/ntoskrnl/io/pnpmgr.c	2005-11-18 18:51:31 UTC (rev 19327)
+++ trunk/reactos/ntoskrnl/io/pnpmgr.c	2005-11-18 20:35:42 UTC (rev 19328)
@@ -2063,11 +2063,6 @@
    }
 #endif
 
-   if (DeviceNode->ServiceName.Length == 0)
-      /* We have a NULL driver for this device. We can't really do
-       * something with it, so state it is started... */
-      IopDeviceNodeSetFlag(DeviceNode, DNF_STARTED);
-
    if (!IopDeviceNodeHasFlag(DeviceNode, DNF_DISABLED) &&
        !IopDeviceNodeHasFlag(DeviceNode, DNF_ADDED) &&
        !IopDeviceNodeHasFlag(DeviceNode, DNF_STARTED))