by uncircle on 6/18/2025, 9:38:46 AM
by ryao on 6/18/2025, 7:58:00 AM
I wonder how the DRM used in some video games that calls Windows system calls directly handles these changes. We know that some of it uses windows system calls directly because both Linux and Wine had to be patched to support it:
https://docs.kernel.org/admin-guide/syscall-user-dispatch.ht...
If I recall correctly, Jurassic World Evolution’s DRM is one of those that needed this to work.
by cies on 6/18/2025, 8:03:44 AM
I count 506 on the Win list. 17 are no longer in use for recent version. So 489.
And 467 on the Linux list https://filippo.io/linux-syscall-table.
Ballpark the same number.
by mike_hearn on 6/18/2025, 8:57:24 AM
The interesting thing about this is that some syscalls are versioned, even though the syscall interface is internal and private. There's NtLoadKey, NtLoadKey2, NtLoadKey3 and even NtLoadKeyEx.
This kind of versioning on public APIs, I understand, but syscalls are only meant to be invoked by ntdll. Why do they need more than one?
by trzeci on 6/18/2025, 8:39:24 AM
Dragon Sector's doing good!
by Surac on 6/18/2025, 7:57:32 AM
i do not see exactly the point in this empty table
I was wondering how the syscall mechanism works on Windows compared to Linux, and I found this delightful article: https://alice.climent-pommeret.red/posts/a-syscall-journey-i...
EDIT: also, wondering why the above article says SetMenu requires a syscall, which is not mentioned in OP, I found this: http://www.fengyuan.com/article/win32ksyscall.html - looks like many GUI operations on Windows NT/2000 were implemented in kernel. That can't have been very good for performance to constantly context-switch to draw a window, no?