Move the initialization of USB keyboard and mouse to DriverEntry, to prevent some (not all!) race conditions with the loading of kbd/mouclass. It is still not satisfying (they are not real USB drivers), but that's better... Modified: trunk/reactos/drivers/usb/miniport/common/main.c _____
Modified: trunk/reactos/drivers/usb/miniport/common/main.c --- trunk/reactos/drivers/usb/miniport/common/main.c 2005-11-12 08:40:47 UTC (rev 19171) +++ trunk/reactos/drivers/usb/miniport/common/main.c 2005-11-12 09:27:52 UTC (rev 19172) @@ -280,11 +280,6 @@
Status = IoCreateSymbolicLink(&LinkDeviceName, &DeviceName);
- if (NT_SUCCESS(Status)) - Status = AddDevice_Keyboard(DriverObject, pdo); - if (NT_SUCCESS(Status)) - Status = AddDevice_Mouse(DriverObject, pdo); - if (!NT_SUCCESS(Status)) { DPRINT("USBMP: IoCreateSymbolicLink() call failed with status 0x%08x\n", Status); @@ -428,5 +423,8 @@ RegisterPortDriver(DriverObject, &UsbPortInterface);
+ AddDevice_Keyboard(DriverObject, NULL); + AddDevice_Mouse(DriverObject, NULL); + return STATUS_SUCCESS; }