|
|
|
|
|
by dragontamer
1640 days ago
|
|
IIRC, the big one was Serial-ports and Parallel-ports (which were commonly used for all sorts of custom equipment, especially in the medical field). IIRC, user-mode programs of WinXP (and earlier, including Win2k) were able to directly access these hardware ports. Which meant that WinXP / Win2k had far better latency, leading to obscure hardware bugs to anyone who upgraded from XP -> Vista (or later). Even if you rewrote the program to use Win Vista+ style COM ports, it wasn't good enough. So a lot of people stayed back on WinXP / Win NT. --------- 16-bit programs were DOS / segmented mode. Win95 remained compatible. IIRC, Win2k forced you into 32-bit flat-mode programs, which had some security benefits. But these 32-bit "flat mode" security benefits were not enough, and were still a far cry from the expectations of the modern computer user. |
|
There were a couple of undocumented but well known NT kernel functions to manipulate the task IO permission level (eg Ke386SetIoAccessMap) and there was a commonly used hack/gaping security hole to manipulate these with a 3rd party driver that was built to do nothing except that (probably the most commonly shared one went by the name of GIVEIO.SYS - first presented in Dr Dobbs Journal in the 90s). This would work similarly on Vista and 7 as it would on the older OSes.
Win2k didn’t so much as force you into flat mode as it was a completely different kernel architecture from Windows 98/95 - the “security benefits” include the myriad other ways that NT is an actual multiuser OS vs 98/95 being a glorified DOS extender. The Windows 11 kernel is an NT descendant through 2000/XP and the preceding NT 4/3 releases preceding those.
* The above mentioned driver has even been updated by internets for 64-but Windows https://www-user.tu-chemnitz.de/~heha/hsn/giveio64.zip/readm...