Merge 20261 and part of 20256 from trunk:
- Fix little bug which prevented IRP_MJ_PNP to be forwarded to lower driver
- Fix serial mouse type detection
- Shut up some debug message
Modified: branches/ros-branch-0_2_9/reactos/drivers/bus/serenum/serenum.c
Modified: branches/ros-branch-0_2_9/reactos/drivers/input/mouclass/mouclass.c
Modified: branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/detect.c
Modified: branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/fdo.c
Modified: branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/readmouse.c
Modified: branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/sermouse.c

Modified: branches/ros-branch-0_2_9/reactos/drivers/bus/serenum/serenum.c
--- branches/ros-branch-0_2_9/reactos/drivers/bus/serenum/serenum.c	2005-12-18 23:00:00 UTC (rev 20261)
+++ branches/ros-branch-0_2_9/reactos/drivers/bus/serenum/serenum.c	2005-12-18 23:02:36 UTC (rev 20262)
@@ -100,7 +100,7 @@
 	DriverObject->DriverUnload = DriverUnload;
 	DriverObject->DriverExtension->AddDevice = SerenumAddDevice;
 
-	for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++)
+	for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++)
 		DriverObject->MajorFunction[i] = IrpStub;
 
 	//DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] = SerialQueryInformation;

Modified: branches/ros-branch-0_2_9/reactos/drivers/input/mouclass/mouclass.c
--- branches/ros-branch-0_2_9/reactos/drivers/input/mouclass/mouclass.c	2005-12-18 23:00:00 UTC (rev 20261)
+++ branches/ros-branch-0_2_9/reactos/drivers/input/mouclass/mouclass.c	2005-12-18 23:02:36 UTC (rev 20262)
@@ -136,6 +136,7 @@
 		/* Forward some IRPs to lower device */
 		switch (IoGetCurrentIrpStackLocation(Irp)->MajorFunction)
 		{
+			case IRP_MJ_PNP:
 			case IRP_MJ_INTERNAL_DEVICE_CONTROL:
 				return ForwardIrpAndForget(DeviceObject, Irp);
 			default:
@@ -788,7 +789,7 @@
 	DriverObject->DriverExtension->AddDevice = ClassAddDevice;
 	DriverObject->DriverUnload = DriverUnload;
 
-	for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++)
+	for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++)
 		DriverObject->MajorFunction[i] = IrpStub;
 
 	DriverObject->MajorFunction[IRP_MJ_CREATE]         = ClassCreate;

Modified: branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/detect.c
--- branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/detect.c	2005-12-18 23:00:00 UTC (rev 20261)
+++ branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/detect.c	2005-12-18 23:02:36 UTC (rev 20262)
@@ -186,7 +186,7 @@
 		&Fcr, sizeof(Fcr), NULL, NULL);
 	if (!NT_SUCCESS(Status)) goto ByeBye;
 	/* Set serial port speed */
-	BaudRate = SERIAL_BAUD_1200;
+	BaudRate = 1200;
 	Status = SermouseDeviceIoControl(LowerDevice, IOCTL_SERIAL_SET_BAUD_RATE,
 		&BaudRate, sizeof(BaudRate), NULL, NULL);
 	if (!NT_SUCCESS(Status)) goto ByeBye;

Modified: branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/fdo.c
--- branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/fdo.c	2005-12-18 23:00:00 UTC (rev 20261)
+++ branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/fdo.c	2005-12-18 23:02:36 UTC (rev 20262)
@@ -115,8 +115,6 @@
 	Fdo->Flags |= DO_BUFFERED_IO;
 	Fdo->Flags &= ~DO_DEVICE_INITIALIZING;
 
-	/* FIXME: create registry entry in HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP */
-
 	ExFreePool(DeviceNameU.Buffer);
 
 	return STATUS_SUCCESS;
@@ -124,6 +122,8 @@
 cleanupFDO:
 	if (DeviceExtension)
 	{
+		if (DeviceExtension->LowerDevice)
+			IoDetachDevice(DeviceExtension->LowerDevice);
 		ExFreePool(DeviceExtension->MouseInputData[0]);
 		ExFreePool(DeviceExtension->MouseInputData[1]);
 	}
@@ -177,7 +177,7 @@
 		/* Override the number of buttons */
 		DeviceExtension->AttributesInformation.NumberOfButtons = DeviceExtension->DriverExtension->NumberOfButtons;
 
-	DeviceExtension->AttributesInformation.SampleRate = 1200 / 8;
+	DeviceExtension->AttributesInformation.SampleRate = DeviceExtension->DriverExtension->SampleRate / 8;
 	DeviceExtension->AttributesInformation.InputDataQueueLength = DeviceExtension->DriverExtension->MouseDataQueueSize;
 	DeviceExtension->MouseType = MouseType;
 	DeviceExtension->PnpState = dsStarted;

Modified: branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/readmouse.c
--- branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/readmouse.c	2005-12-18 23:00:00 UTC (rev 20261)
+++ branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/readmouse.c	2005-12-18 23:02:36 UTC (rev 20262)
@@ -172,7 +172,7 @@
 		for (i = 0; i < ioStatus.Information; i++)
 		{
 			ReceivedByte = Buffer[i];
-			DPRINT1("ReceivedByte 0x%02x\n", ReceivedByte);
+			DPRINT("ReceivedByte 0x%02x\n", ReceivedByte);
 
 			/* Synchronize */
 			if ((ReceivedByte & 0x40) == 0x40)

Modified: branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/sermouse.c
--- branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/sermouse.c	2005-12-18 23:00:00 UTC (rev 20261)
+++ branches/ros-branch-0_2_9/reactos/drivers/input/sermouse/sermouse.c	2005-12-18 23:02:36 UTC (rev 20262)
@@ -150,7 +150,7 @@
 	DriverObject->DriverUnload = DriverUnload;
 	DriverObject->DriverExtension->AddDevice = SermouseAddDevice;
 
-	for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++)
+	for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++)
 		DriverObject->MajorFunction[i] = IrpStub;
 
 	DriverObject->MajorFunction[IRP_MJ_CREATE] = SermouseCreate;