diff --git a/drivers/hid/hidclass/hidclass.c b/drivers/hid/hidclass/hidclass.c index e6eb4a9f0ac..392f7a49ba3 100644 --- a/drivers/hid/hidclass/hidclass.c +++ b/drivers/hid/hidclass/hidclass.c @@ -137,12 +137,23 @@ HidClass_Create( CommonDeviceExtension = (PHIDCLASS_COMMON_DEVICE_EXTENSION)DeviceObject->DeviceExtension; if (CommonDeviceExtension->IsFDO) { +#ifndef __REACTOS__ + // // only supported for PDO // Irp->IoStatus.Status = STATUS_UNSUCCESSFUL; IoCompleteRequest(Irp, IO_NO_INCREMENT); return STATUS_UNSUCCESSFUL; +#else + // + // ReactOS PnP manager [...] + // + DPRINT1("[HIDCLASS] PnP HACK\n"); + Irp->IoStatus.Status = STATUS_SUCCESS; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_SUCCESS; +#endif } // diff --git a/drivers/usb/usbhub_new/fdo.c b/drivers/usb/usbhub_new/fdo.c index cdca463df05..89eb1665959 100644 --- a/drivers/usb/usbhub_new/fdo.c +++ b/drivers/usb/usbhub_new/fdo.c @@ -971,7 +971,7 @@ CreateDeviceIds( // // copy instance id // - RtlCopyMemory(UsbChildExtension->usInstanceId.Buffer, Buffer, wcslen(Buffer) * sizeof(WCHAR)); + RtlCopyMemory(UsbChildExtension->usInstanceId.Buffer, Buffer, Index * sizeof(WCHAR)); UsbChildExtension->usInstanceId.Length = UsbChildExtension->usDeviceId.MaximumLength = Index * sizeof(WCHAR); DPRINT1("usDeviceId %wZ\n", &UsbChildExtension->usInstanceId); diff --git a/media/inf/CMakeLists.txt b/media/inf/CMakeLists.txt index 8237cc71930..e875899f231 100644 --- a/media/inf/CMakeLists.txt +++ b/media/inf/CMakeLists.txt @@ -9,6 +9,7 @@ list(APPEND INF_FILES fdc.inf font.inf hdc.inf + input.inf intl.inf keyboard.inf ks.inf diff --git a/media/inf/input.inf b/media/inf/input.inf new file mode 100644 index 00000000000..c33d99f961e --- /dev/null +++ b/media/inf/input.inf @@ -0,0 +1,73 @@ +[Version] +Signature="$WINDOWS NT$" +Class=HIDClass +ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da} +Provider=%MSFT% +LayoutFile=layout.inf +DriverVer=07/01/2001,5.1.2600.5512 + +[DestinationDirs] +DefaultDestDir = 12 +HID_Inst.CopyFilesDLL.NT = 11 +SPI_Files_DLL = 11 + +[ClassInstall] +Addreg=HIDClassReg + +[HIDClassReg] +HKR,,,,%HID.ClassName% +HKR,,Icon,,-24 +HKR,,NoInstallClass,,1 + +[ClassInstall32] +Addreg=HIDClassReg + +[MSMice] +%USB\VID_045E&PID_0009.DeviceDesc%=HID_Inst,, USB\VID_045E&PID_0009 +%USB\VID_045E&PID_001E.DeviceDesc%=HID_Inst,, USB\VID_045E&PID_001E +%USB\VID_045E&PID_0023.DeviceDesc%=HID_Inst,, USB\VID_045E&PID_0023 +%USB\VID_045E&PID_0024.DeviceDesc%=HID_Inst,, USB\VID_045E&PID_0024 +%USB\VID_045E&PID_0025.DeviceDesc%=HID_Inst,, USB\VID_045E&PID_0025 +%USB\VID_045E&PID_0029.DeviceDesc%=HID_Inst,, USB\VID_045E&PID_0029 +%USB\VID_045E&PID_0039.DeviceDesc%=HID_Inst,, USB\VID_045E&PID_0039 +%USB\VID_045E&PID_0040.DeviceDesc%=HID_Inst,, USB\VID_045E&PID_0040 +%USB\VID_045E&PID_0047.DeviceDesc%=HID_Inst,, USB\VID_045E&PID_0047 + + +[Standard] +%HID_DEVICE_SYSTEM_GAME%=HID_Raw_Inst,, HID_DEVICE_SYSTEM_GAME +%HID_DEVICE%=HID_Raw_Inst,, HID_DEVICE +%HID.DeviceDesc% = HID_Inst,,GENERIC_HID_DEVICE,USB\Class_03&SubClass_01,USB\Class_03 + + +[HID_Inst.NT] +Copyfiles = HID_Inst.CopyFiles.NT, HID_Inst.CopyFilesDLL.NT + +[HID_Inst.CopyFiles.NT] +hidusb.sys +hidclass.sys +hidparse.sys + +[HID_INST.CopyFilesDLL.NT] +hid.dll + +[HID_Inst.NT.Services] +AddService = hidusb, 0x00000002, HID_Service_Inst + +[HID_Service_Inst] +ServiceType = 1 +StartType = 3 +ErrorControl = 1 +ServiceBinary = %12%\hidusb.sys +LoadOrderGroup = Pointer Port + +[strings] +MSFT = "ReactOS" +HID.DeviceDesc = "USB-HID (Human Interface Device)" +HID.DefaultDevice = "HID-Standardgerät" +HID.ClassName = "Eingabegeräte (Human Interface Devices)" +HID.SvcDesc = "ReactOS HID Class-Treiber" + + + + diff --git a/media/inf/syssetup.inf.tpl b/media/inf/syssetup.inf.tpl index f1c7ff67ce6..ab79fca48d3 100644 --- a/media/inf/syssetup.inf.tpl +++ b/media/inf/syssetup.inf.tpl @@ -19,6 +19,7 @@ cdrom.inf display.inf fdc.inf hdc.inf +input.inf keyboard.inf machine.inf msmouse.inf