https://git.reactos.org/?p=reactos.git;a=commitdiff;h=c464b02c90e448ea45772…
commit c464b02c90e448ea45772709f741dbcde6c8a08c
Author: Dmitry Borisov <di.sean(a)protonmail.com>
AuthorDate: Sun Sep 13 17:36:40 2020 +0600
Commit: Stanislav Motylkov <x86corez(a)gmail.com>
CommitDate: Sat Oct 10 16:24:17 2020 +0300
[NTOS:PNP] Install mouse driver on NEC PC-98 series (#3173)
The current implementation of device tree enumeration does not distinguish
between possible identifier strings. This change is not a hack,
NT 5.2 still creates a new device node for this hardware ID.
The entire function should be rewritten to match Windows implementation.
---
ntoskrnl/io/pnpmgr/pnpmgr.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/ntoskrnl/io/pnpmgr/pnpmgr.c b/ntoskrnl/io/pnpmgr/pnpmgr.c
index ac9d71a9b99..50e608e3730 100644
--- a/ntoskrnl/io/pnpmgr/pnpmgr.c
+++ b/ntoskrnl/io/pnpmgr/pnpmgr.c
@@ -1065,7 +1065,15 @@ IopEnumerateDetectedDevices(
UNICODE_STRING HardwareIdKeyboard = RTL_CONSTANT_STRING(L"*PNP0303\0");
static ULONG DeviceIndexKeyboard = 0;
const UNICODE_STRING IdentifierMouse =
RTL_CONSTANT_STRING(L"PointerController");
+ /* FIXME: IopEnumerateDetectedDevices() should be rewritten.
+ * The PnP identifiers can either be hardcoded or parsed from a LegacyXlate
+ * sections of driver INF files.
+ */
+#if defined(SARCH_PC98)
+ UNICODE_STRING HardwareIdMouse = RTL_CONSTANT_STRING(L"*nEC1F00\0");
+#else
UNICODE_STRING HardwareIdMouse = RTL_CONSTANT_STRING(L"*PNP0F13\0");
+#endif
static ULONG DeviceIndexMouse = 0;
const UNICODE_STRING IdentifierParallel =
RTL_CONSTANT_STRING(L"ParallelController");
UNICODE_STRING HardwareIdParallel = RTL_CONSTANT_STRING(L"*PNP0400\0");